我有一个小脚本可以在我的远程计算机上安装更新。
我想远程重新启动机器,如果重新启动,请继续执行更多命令。我目前所做的是:
ssh root@myMachine << COMMANDS_ISSUED
###... Tasks
init 6
COMMANDS_ISSUED
sleep 180s
ssh root@myMachine << POST_REBOOT_COMMANDS
###.... More stuff
POST_REBOOT_COMMANDS
Run Code Online (Sandbox Code Playgroud)
有更优雅的方法吗?比如 ping 机器 5 秒到最多 4 分钟?我使用了几台具有不同启动时间的 Linux 机器,如果我的脚本在重新启动后立即继续,这对我来说可以安全相当长的时间。(注意:我不想在所有机器上并行执行,因为我想查看每台机器是否一切正常)
小智 5
我会说 ping 机器直到它启动。
while ! ping -c 1 192.168.1.1 &>/dev/null; do :; done
Run Code Online (Sandbox Code Playgroud)
“c 1”将一次发送一个请求,因此每个循环一个。如果没有响应 ping 将返回 false 并且循环将继续。
循环体是空的 - 如果需要,您可以在其中放置一个简短的睡眠命令。否则,使用冒号“:”,即[无操作命令][1]。这是因为循环体不能为空。
| 归档时间: |
|
| 查看次数: |
5335 次 |
| 最近记录: |