请问我在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_102 -l $User "sh 102.sh"&
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

本回答被提问者和网友采纳
参考技术B expect命令可以实现 参考技术C 搞一个定时任务。
假如: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脚本怎么实现?的主要内容,如果未能解决你的问题,请参考以下文章

在公司,mac终端上用ssh可以连接到linux服务器,在家里就Operation timed out,请问啥原因?

Linux下搭建无人执守安装服务器

粘贴到 SSH 终端大写最后一个字符,不允许我编辑它

通过终端使用ssh-keygen免密码登录远程服务器

请问任务计划怎样用shutdown定时关机

linux中批处理文件顺序执行命令的输入