Bash

SSH 到伺服器,執行更新命令,即使在註銷 ssh 會話後也會繼續

  • September 28, 2014

好的,我看到了很多這樣的問題,但幾乎所有人都有理論答案,可以明確概念,但我仍然無法將其放入程式碼中。

我想使用 bash 腳本實現的是,使用循環,

  1. ssh到文件中提到的伺服器(完成)
  2. 對它們中的每一個執行更新和升級命令。
  3. exit asa 命令已發出,但命令應繼續在伺服器上執行。

目前,使用普通腳本執行此操作,我可以ssh更新所有機器,但串列…每次只有一台機器,因為ssh只有在完成更新和升級後才會退出。(操作指向/dev/null以避免不必要的操作螢幕)

我看到諸如 nohup、screen/tmux 之類的選項可以這樣做……但我不知道如何使用這些選項來實現上述目標!

我該如何實施?

準備update.sh將在機器上執行的腳本。screen在裡面執行它ssh

ssh user@host "screen -a -d -m -l -U /usr/local/sbin/update.sh"

利潤。它將在分離螢幕會話中執行更新腳本,該腳本將在 update.sh 結束後立即結束。

引用自:https://unix.stackexchange.com/questions/158018