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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用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脚本判断另一台上的某个文件是不是存在,这个shell语句该怎么写?

参考技术A 给你想几种办法:
1、文件共享,可采用nfs或rsync之类的方式实现目标主机磁盘可在本地检索或操作,那么你可以通过更改目标主机在本地的映射来操作
2、远程发送指令:这里那就需要目标主机上有相应的服务来监听并应答从远端发出的指令了,expect可以做到通过ssh登陆到目标主机执行相应指令并返回
当然,第二种方式有很多的选择,例如通过http或sokect,但是完全用shell写可能比较难以实现
参考技术B

首先, 你要设置ssh信任. 这样ssh远程主机的时候就不用输密码. 关于怎么设置信任, 请问google. 

然后, 脚本大概这样

if ssh root@HOSTNAME 'head a';then
echo 'a exists'
else
echo 'a does not exist'
fi

以上是关于利用shell脚本执行ssh远程另一台主机执行命令并返回命令的结果集的主要内容,如果未能解决你的问题,请参考以下文章

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

本地shell脚本中ssh到远程服务器并执行命令

linux怎么远程执行另一台linux机器上的shell文件?

linux下如何使用ssh远程登录主机 执行shell脚本?

linux远程通过shell脚本执行另一台linux机器上的shell文件

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