例子:當想要下載一個大文件的時候,ssh 鏈接到服務器以後 用 wget 命令開始下載一個文件,這時 網絡不穩定 忽然掉線了,那麼 文件下載過程也就中斷了。再次 ssh 鏈接到服務器,用 wget 命令從新下載那個文件:以前的下載過程等於白費 (若是再次掉線 那麼又付之東流)。
辦法:ssh 鏈接到服務器以後,先建立一個 screen 的 session ,而後進入到 screen 的一個 session ,而後 用 wget 命令 下載一個文件。這時,若是退出此 session (好比 網絡掉線) 了,那麼 wget 會依舊跑在此 session 裏。再次 ssh 鏈接到服務器的時候,查看 screen 的 session 列表,會發現剛纔啓動的 session 還在。進入它以後,發現 wget 下載過程還在繼續:並未由於你的網絡掉線而中斷。shell
原理:wget 成爲了 screen session 的子進程。ubuntu
相似軟件:tmux (爲何不用 tmux ?命令太難記了!)服務器
配置辦法:
1.安裝 screen網絡
sudo apt-get install screen
2.配置 screen
nano ~/.screenrc 寫入session
startup_message off autodetach on nonblock on vbell off vbell_msg "Bell on %t (%n)" shell -$SHELL caption always "%{= KW}screen -d%{= WK} Detach %{= KW}ctrl+a+d%{= WK} Detach %{= KW}screen -r a%{= WK} Resume %{= KW}exit%{= WK} Destroy %{= KW}screen -ls%{= WK} List"
重啓ssh
pkill screen screen -ls
3
例子:進入並啓動 wget 測試
測試大文件 下載spa
ssh -p 22 abc@117.71.214.157 screen -ls screen -S a screen -d screen -ls screen -r a cd ~/Downloads ls wget http://releases.ubuntu.com/16.04/ubuntu-16.04.6-desktop-amd64.iso
4
經常使用命令code
screen -ls ## 查看 sesson 列表 screen -S a ## 開啓一個 名爲 ‘a’ 的 session screen -r a ## 進入一個 session ( resume a session ) screen -d OR ctrl+a+d ## 離開一個 session ( detach a session ) exit ## 進入一個 session 以後 銷燬本 session
-blog