Ssh
在不保持連接的情況下執行遠端腳本並監控他的活動
我自己在 Linux Mint 上工作,擁有具有 root ssh 訪問權限的遠端 Ubuntu VPS 伺服器。我在伺服器上有腳本,可以進行長時間的數據處理(數小時或數天的處理)。
現在我可以在我的機器上打開控制台,通過 ssh 連接到 VPS 並執行腳本 - 我可以在控制台中實時查看腳本在做什麼(處理了多少數據,還剩多少等等在我的控制台螢幕上定期刷新) -這行得通。
我怎樣才能做類似的事情,但不依賴我的本地機器:
- 連接到伺服器並執行腳本
- 斷開連接並離開伺服器以完成他的長時間處理工作,而我可以重新啟動本地電腦或將其關閉而不會影響啟動的伺服器腳本執行。
- 有可能稍後再次連接並查看程序的目前狀態(它實時向我顯示的相同數據)而不會中斷程序。
我認為這
screen
對您來說是一個理想的解決方案。它是如何工作的 - 你連接到你的 VPS,輸入,然後screen
執行你的腳本並從 shell 中分離(關閉你的終端視窗,或者按下)ctrl+a``ctrl+d
您的腳本(和 shell)將繼續在後台執行。
screen
您可以通過鍵入來查看號碼screen -ls
。要恢復會話並查看腳本的進度/結果,請使用 獲取螢幕編號,screen -ls
然後使用screen -r <screen number>
. 就是這樣。恢復後,您可以再次以相同方式分離。您可以在您的 VPS 上
apt-get install screen
為基於 Debian 的發行版和yum install screen
基於 RedHat 的發行版安裝 screen。