是否可以创建一个脚本,可以依次 ssh 到多个主机(非并行)并等到我退出现有的 ssh 会话?
我有 50 多个主机。步骤如下:
- SSH 主机 1
- 从主机 1 命令提示符处,运行一组操作(手动)并退出会话(手动)。
- 该脚本会自动检测退出并通过 SSH 连接到下一个主机。
尝试利用 rhel 6.x 中现有的工具。我只是想知道是否有人用内置工具做到了这一点
我可以做这样的事情:但我只需要知道如何让脚本等待我完成操作。
usr=test
svrs=("192.168.18.48" "192.168.191.237" )
for x in ${!svrs[*]} ; do
ip=`echo ${svrs[x]}`
ssh $usr@$ip
done
答案1
正是这样。
从 shell 的角度来看,ssh $usr@$ip
这与启动可能与用户交互的任何其他程序没有什么不同。由于程序的输入和输出没有被重定向,并且程序没有在后台运行,因此程序可以随心所欲地与用户交互。
您不必执行任何特殊操作来“让脚本等待,直到完成操作”:脚本将等待“ssh”命令完成,或者换句话说,直到 SSH 会话结束。