解决ssh $host jps bash: jps: command not found 问题

Posted on 2022-04-22 14:16  ***Pepsi***  阅读(162)  评论(0编辑  收藏  举报

问题描述

使用 ssh $host jps 命令报错,连本机也会有这样的情况,但是分开使用并没有问题,即ssh $host下执行jps命令并不会报错。

原因

因为ssh远程连接到服务器的环境变量中不包含对应可执行文件的路径。需要在shell脚本中自己添加。把java的路径加上就行了。

解决

1、ssh $host source /etc/profile;jps

2、在有java环境变量的情况下,

[dev1@hadoop102 bin]$ ssh hadoop102 $PATH
bash: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8.0_212/bin:/opt/module/hadoop-3.1.3/bin:/opt/module/hadoop-3.1.3/sbin:/home/dev1/.local/bin:/home/dev1/bin: 没有那个文件或目录

使用命令

ssh $host $JAVA_HOME/bin/jps

3、尝试着把root权限赋给hadoop用户

[root@hadoop102 hadoop]# vim /etc/sudoers

在91行91 shift g添加

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
dev1    ALL=(ALL)       ALL

4、把配置文件中的信息追加到~/.bashrc文件里面

[dev1@hadoop102 profile.d]$ sudo cat /etc/profile >> ~/.bashrc
[dev1@hadoop102 profile.d]$ ssh hadoop102 jps
50943 Jps

5、在 /etc/profile.d 下创建my_env.sh文件,写入

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile

Copyright © 2024 ***Pepsi***
Powered by .NET 8.0 on Kubernetes