例子:当想要下载一个大文件的时候,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