请问我在Linux下想实现一个终端同时通过SSH执行其它多个终端内的shell脚本怎么实现?

比如101主机由主控脚本,102和103分别有被控脚本,都建立好信任域关系:101.sh:ssh$IP_102-l$User"sh102.sh"ssh$IP_103-l$... 比如101主机由主控脚本,102和103分别有被控脚本,都建立好信任域关系:
101.sh:
ssh $IP_102 -l $User "sh 102.sh"
ssh $IP_103 -l $User "sh 103.sh"
执行101.sh是否会同时执行102.sh和103.sh?
又如何判断各SSH执行语句执行完了?
展开
 我来答
我心21依旧
2013-09-29 · TA获得超过175个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:193万
展开全部
ssh $IP_102 -l $User "sh 102.sh"&
ssh $IP_103 -l $User "sh 103.sh"&
这样执行就可以同时执行了,否则是一个一个执行的。
如果判断是否执行完成就写一个log日志,看好读日志就可以了。
追问
假如我在sh 102.sh里面的最后执行完了输出一个类似over的标示到指定日志,如何实时监控这个标示是否出现在了日志上,一旦出现就做下一步操作。。
大大虫
高粉答主

2013-09-29 · 醉心答题,欢迎关注
知道大有可为答主
回答量:4.2万
采纳率:76%
帮助的人:1.4亿
展开全部
不会同时执行

同时执行要将命令放到后台:
ssh $IP_102 -l $User "sh 102.sh" &
ssh $IP_103 -l $User "sh 103.sh" &
判断可以用ps检查进程
追问
假如我在sh 102.sh里面的最后执行完了输出一个类似over的标示到指定日志,如何实时监控这个标示是否出现在了日志上,一旦出现就做下一步操作。。
追答
后面加上

while true
do
tail -1 logfile.log|grep over #tail的长度根据需要修改
if [ $? -eq 0 ]; then
#出现over,进行后续处理
break
fi
sleep 5
done
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hunk0620
2013-09-29 · TA获得超过124个赞
知道答主
回答量:55
采纳率:0%
帮助的人:19.9万
展开全部
expect命令可以实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3228def
2013-09-29 · TA获得超过166个赞
知道答主
回答量:153
采纳率:0%
帮助的人:96.1万
展开全部
搞一个定时任务。
假如:10点开始准备,让它们统一在10:30执行。

只需把时间同步一下就可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式