Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何在登录后5秒自动退出ssh?_Bash_Ssh_Tmux - Fatal编程技术网

Bash 如何在登录后5秒自动退出ssh?

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

我有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

我怎样才能正确地做到这一点呢?

似乎有点太容易了,所以也许我在你的问题中遗漏了一些东西

但看看这个:

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
的操作,而不是长时间睡眠。