请问我在Linux下想实现一个终端同时通过SSH执行其它多个终端内的shell脚本怎么实现?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问我在Linux下想实现一个终端同时通过SSH执行其它多个终端内的shell脚本怎么实现?相关的知识,希望对你有一定的参考价值。
比如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执行语句执行完了?
ssh $IP_103 -l $User "sh 103.sh"&
这样执行就可以同时执行了,否则是一个一个执行的。
如果判断是否执行完成就写一个log日志,看好读日志就可以了。追问
假如我在sh 102.sh里面的最后执行完了输出一个类似over的标示到指定日志,如何实时监控这个标示是否出现在了日志上,一旦出现就做下一步操作。。
参考技术A 不会同时执行同时执行要将命令放到后台:
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
假如:10点开始准备,让它们统一在10:30执行。
只需把时间同步一下就可。
SSH 客户端实现和 Linux 共享文件
互传文件:Windows <===> Linux
工具有:ftp / winscp / http / rz-sz
我们用 rz-sz
1、首先在 CRT 中配置下载的目录
选项 ---> 会话选项 --->终端 ---> X/YZmodem ---> 目录(上传、下载)
上传和下载的路径可以设置为同一个,但所选择的路径必须要存在才行。
设置完毕后,就可以通过 Linux CRT 连接的命令行经由 rz 上传文件到 Linux 系统了,通过“sz 文件名”则可以下载文件到上述配置的路径里,从而实现了客户端电脑和Linux主机的文件传输。
2、首先要安装包
# yum -y install lrzsz
3、上传
# rz 回车 ---> 选择要上传的文件(不能是目录,如果是目录要打压成压缩包)
# sz 文件 回车,下载的路径是 CRT 指定的路径
-y:是覆盖;上传覆盖或下载覆盖
使用 rz、sz 命令的注意事项:
a)只能上传下载文件而不能是目录,如果是目录需要打包成文件再传。
b)上传的文件可以是电脑里的任意文件,下载的文件会下载到 CRT 配置的对应下载路径目录中。
除了 rz、sz 等传输文件命令外,还可以用 ftp、sftp(SSH服务)等工具来传输文件。
以上是关于请问我在Linux下想实现一个终端同时通过SSH执行其它多个终端内的shell脚本怎么实现?的主要内容,如果未能解决你的问题,请参考以下文章