Bash
SSH 到伺服器,執行更新命令,即使在註銷 ssh 會話後也會繼續
好的,我看到了很多這樣的問題,但幾乎所有人都有理論答案,可以明確概念,但我仍然無法將其放入程式碼中。
我想使用 bash 腳本實現的是,使用循環,
ssh
到文件中提到的伺服器(完成)- 對它們中的每一個執行更新和升級命令。
- 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 結束後立即結束。