ssh + ssh卡在远程机器上

时间:2016-06-29 15:33:43

标签: linux bash ssh redhat

简单脚本,以便在Linux机器上执行重启

for i in $LIST_OF_LINUX_MACHINES
do
   ssh $LINUX_MACHINE /var/tmp/restart.sh
done

运行此脚本几次后,

有时候ssh进程被卡住了! (并且循环卡在当前机器上) -

所以它是怎么回事 - 在极少数情况下ssh被卡住的原因可能是什么

以及如何避免这种情况?

1 个答案:

答案 0 :(得分:0)

我建议一些相当不同的东西 - 而不是在实例之间有固定的延迟,一次运行固定的最大实例数。例如,该值为25:

numprocs=25
timeout=5
xargs -P "$numprocs" -J '{}' -n 1 -- \
  perl -e 'alarm shift; exec @ARGV' -- "$timeout" \
    ssh -nxaq -o ConnectTimeout=5 -o StrictHostKeyChecking=no '{}' /tmp/reboot.sh \
  <hostnames # if a file; use < <(awk ...) if a script providing per-line info

请注意,-J {}是一个扩展,可以避免(标准规定的)-I {} xargs行为的规范中隐含的错误。如果它不可用,则可以使用-I '{}' - 但请阅读手册页以了解警告。