Linux下使用远程ssh命令运行其他机器上的代码

来源:互联网 发布:淘宝水印在线制作 编辑:程序博客网 时间:2024/05/20 17:08

Linux下使用远程ssh命令运行其他机器上的代码

想在机器A上远程运行机器B上的一条命令,如运行B上的ls,则可使用命令:

cyf@A:~$ ssh cyf@B 'ls'

如果想在机器A上远程运行机器B上的多条命令,可使用分号将多条命令分开,如:

cyf@A:~$ ssh cyf@B 'cd test; ls'

当然也可以运行机器B上的shell脚本,如机器B上的cyf用户目录下有一个test.sh的脚本,则可以:

cyf@A:~$ ssh cyf@B './test.sh'

cyf@A:~$ ssh cyf@B 'bash test.sh'

但是在远程运行机器B上的java程序Test的时候,出现了问题:

cyf@A:~$ ssh cyf@B 'java Test'

提示

bash: java: 未找到命令

而直接ssh cyf@B之后,再运行java Test正常

如果执行

cyf@A:~$ ssh cyf@B ‘env’

会发现没有java环境变量

这是因为ssh执行命令时是个短链接,没有打开终端,所以不会去加载.bashrc环境变量从而导致不识别java命令

解决方法:修改/etc/environment,在其中添加java路径

PATH="usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/jdk/bin"

再次执行java程序Test,发现可以了

阅读全文
0 0
原创粉丝点击