raksmart活动促销

分享

写回答

发帖

判断ssh远程命令是否执行结束

国外服务器 国外服务器 5066 人阅读 | 5 人回复

发表于 2018-4-30 10:09:00 | 显示全部楼层 |阅读模式

通常在那些"一键化部署"的shell脚本中,可能需要使用ssh执行远程命令来实现一些简单的自动化,这些远程命令可能需要执行一段时间才能结束(如yum命令)。例如,远程ssh配置yum源,远程ssh安装软件包。

为了让脚本实现"并行"执行,这个远程ssh命令往往还会加上"-f"选项使其进入后台执行。此时,如果后续的远程任务正好要依赖于这个命令已经执行完成,那么我们要判断前面的任务是否执行完成。例如,在配置软件的时候,必须先判断软件是否安装结束。

判断的方式挺简单,只需判断这个ssh进程是否存在就可以了。例如:
[root@node1 ~]# ssh 192.168.100.101 -f 'yum makecache'
[root@node1 ~]# killall -s 0 ssh
[root@node1 ~]# echo $?

回答|共 5 个

山不转水转

发表于 2018-5-8 17:25:22 | 显示全部楼层

远程的用的较少
回复 支持 反对

使用道具 举报

普罗旺斯

发表于 2018-5-8 17:26:31 | 显示全部楼层

先学者使用
回复 支持 反对

使用道具 举报

欢乐无极限

发表于 2018-5-8 17:26:57 | 显示全部楼层

重要的操作
RAKSmart
回复 支持 反对

使用道具 举报

斯巴达

发表于 2018-5-11 17:45:07 | 显示全部楼层

只是路过的
回复 支持 反对

使用道具 举报

妖铃铃妖

发表于 2018-5-11 17:45:27 | 显示全部楼层

还在学习中
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则