本文主要是介绍远程ssh命令:ssh cdh1 jps 报错:bash: jps: command not found,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、问题描述
集群cdh1,cdh2和cdh3都已经配置好ssh和jdk,但是,在cdh2中运行ssh cdh1 "jps"命令却报错
[root@cdh2 sh]# ssh cdh1 "jps"
bash: jps: command not found
然后,专门试验一下ssh到cdh1有无问题,验证没问题。
[root@cdh2 softwares]# ssh cdh1
Last login: Sun Mar 15 01:09:57 2020 from 192.168.0.109
[root@cdh1 ~]# jps
3008 HeadlampServer
13568 ThriftServer
13634 JobHistoryServer
13444 ResourceManager
15496 Bootstrap
13518 HMaster
12817 NameNode
...
这个就有点百思不得其解。
二、问题原因
尽管每台都设置了/etc/profile文件:用来设置系统环境参数,比如$PATH. 这里面的环境变量是对系统内所有用户生效。但是没有设置~/.bashrc文件,而~/.bashrc文件是针对某一个特定的用户,环境变量的设置只对该用户自己有效。使用bash命令,只要以该用户身份运行命令行就会读取该文件。
所以,在cdh2上运行的ssh cdh1 "jps"的时候,实际读取的是~/.bashrc这个文件里面的环境变量,是不包含jdk路径的。解决办法就是把jdk路径写入~/.bashrc。
三、解决问题
把/etc/profile里面的环境变量追加到~/.bashrc目录
[root@cdh1 opt]# cat /etc/profile >> ~/.bashrc
[root@cdh2 opt]# cat /etc/profile >> ~/.bashrc
[root@cdh3 opt]# cat /etc/profile >> ~/.bashrc
四、参考
1.https://www.cnblogs.com/tijun/p/7600482.html
这篇关于远程ssh命令:ssh cdh1 jps 报错:bash: jps: command not found的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!