好吧,我看到了很多这样的问题,但几乎所有问题都有理论答案来明确这个概念,但我仍然无法将其放入代码中。
我想使用 bash 脚本实现的是,使用循环,
ssh
到文件中提到的服务器(已完成)对每个设备执行更新和升级命令。
exit asa 命令已发出,但命令应继续在服务器上运行。
目前,使用正常的脚本来执行此操作,我可以ssh
更新所有计算机,但要连续更新...一次只有一台计算机,因为ssh
只有在完成更新和升级后才会退出。(操作定向到/dev/null
以避免不必要的操作屏幕)
我看到像 nohup、screen
/tmux 之类的选项来执行此操作...但我不知道如何使用其中任何一个来实现上述目标!
我怎样才能实现这个?
答案1
准备update.sh
将在机器上运行的脚本。screen
在里面运行它ssh
:
ssh user@host "screen -a -d -m -l -U /usr/local/sbin/update.sh"
利润。它将在分离的屏幕会话中运行更新脚本,该会话将在 update.sh 结束后立即结束。