shell脚本怎么实现A主机SSH到B主机,在从B主机SSH到C主机,然后在C主机执行ps -ef命令返回C主机的进程数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本怎么实现A主机SSH到B主机,在从B主机SSH到C主机,然后在C主机执行ps -ef命令返回C主机的进程数相关的知识,希望对你有一定的参考价值。

假设从主机A,检查主机B上的进程,
需要在主机B上建立检查用户,例如叫x,
并设置通过public key认证登录SSH,不会可以google搜一下,
然后,在A机器上执行:
ssh x@B ~/command.sh > result.txt
command.sh就是B机器上放置在x目录下的脚本。
输出结果应该是写到了result.txt
或者另一种写法
result=`ssh x@B ~/command.sh`
结果直接保存到result变量中了。
暂时没有linux环境,所以没有实际测试,你自己试试吧
免费提供最新Linux技术教程书籍,入门自学书籍《linux就该这么学》,为开源技术爱好者努力做得更多更好追问

别这样,我在网上已经看到了这个。跟我问题有些偏差。。

参考技术A

    添加免密认证,避免用户输入密码交互

    主机A执行: ssh-copy-id userb@hostB

    主机B执行: ssh-copy-id userc@hostC

    A上执行 ssh userb@hostB 'ssh userc@hostC ps -ef' 就可以看到C上返回到A的结果了

    其他:如果提示没有key, 用ssh-keygen 一路回车生成即可。

追问

我没用这种免密的,下面是我写的一个shell,但是脚本统计出来的数不对,

我112主机里面的java进程只有1个,但是上面脚本统计出来的是3个,求帮看看是哪里出了问题。

追答

    echo xx java  xxx 这儿是一个

    grep java 这儿是一个

    实际 java

    一共 三个

利用shell脚本执行ssh远程另一台主机执行命令并返回命令的结果集

实现功能:
部署在linux上的java项目,怎么可以去判断另一台linux的多个进程是否在运行,并得到结果集,通过判断在页显示是否正常。
我所用的方法:
通过java执行本机shell脚本远程到另一台linux执行命令查看进程,并返回查到的结果,遇到的问题就是不知道怎么返回结果;

帮助:
希望可以帮忙解决一下,如有其它的解决方法也可以给我说一下只要可以执行,实现功能

参考技术A 假设从主机A,检查主机B上的进程,
需要在主机B上建立检查用户,例如叫x,
并设置通过public key认证登录SSH,不会可以google搜一下,

然后,在A机器上执行:
ssh x@B ~/command.sh > result.txt

command.sh就是B机器上放置在x目录下的脚本。
输出结果应该是写到了result.txt

或者另一种写法
result=`ssh x@B ~/command.sh`

结果直接保存到result变量中了。

暂时没有linux环境,所以没有实际测试,你自己试试吧本回答被提问者采纳

以上是关于shell脚本怎么实现A主机SSH到B主机,在从B主机SSH到C主机,然后在C主机执行ps -ef命令返回C主机的进程数的主要内容,如果未能解决你的问题,请参考以下文章

怎么在一个shell脚本中执行远程主机的另一个shell脚本?? ssh已经可以无密码登录了。

利用shell脚本执行ssh远程另一台主机执行命令并返回命令的结果集

要在一台主机上执行shell脚本判断另一台上的某个文件是不是存在,这个shell语句该怎么写?

使用 shell 脚本修改 /etc/hosts 文件

ssh隧道代理连接

shell脚本实现ssh-copy-id批量自动发送公钥到远程主机