Bash 如何在登录后5秒自动退出ssh?
我有30台服务器在tmux会话中执行特定任务,我需要通过登录和注销每台服务器来检查它们中的每一台,以便了解其中的情况。我想自动完成,是这样的:Bash 如何在登录后5秒自动退出ssh?,bash,ssh,tmux,Bash,Ssh,Tmux,我有30台服务器在tmux会话中执行特定任务,我需要通过登录和注销每台服务器来检查它们中的每一台,以便了解其中的情况。我想自动完成,是这样的: #!/bin/bash ip=( 100.100.100.100 200.200.200.200 9.9.9.9 ) for i in "${ip[@]}"; do # Login ssh, sleep for 5 seconds and then logout ssh automatically done
#!/bin/bash
ip=(
100.100.100.100
200.200.200.200
9.9.9.9
)
for i in "${ip[@]}"; do
# Login ssh, sleep for 5 seconds and then logout ssh automatically
done
我怎样才能正确地做到这一点呢?似乎有点太容易了,所以也许我在你的问题中遗漏了一些东西 但看看这个:
for i in $ip ; do
(ssh $i "hostname; sleep 5"); echo "back to `hostname`"
done
您可以使用和,例如:
$ ansible -m ping all
这将ping(ssh到所有主机中),您可以根据需要创建一个基本目标,然后针对每个主机/组创建一个目标。也许您想要……
ssh$i“sleep 5”
?看看你可以在后台启动所有ssh连接,在主脚本中,你只需在连接上进行交互并打印出最近的输出。如果你需要做的只是验证连接是否成功,只需运行类似于true
的操作,而不是长时间睡眠。