今天用SSH登录学校的服务器下载数据(其实是从一台服务器转移数据到另一台服务器),因为数据量很大,估计个把小时才能下完,但是我马上就要去吃饭上课了,同组的学长就告诉我用screen这个命令。
大概意思就是:
1. 在SSH里输入screen -S name(name可以自己随便取,这个name代表你将要创建的session的名称)
2. 回车后就会创建一个新的session,在这个session里你可以敲入命令运行你想要运行的程序,in my case,就是ftp下载
3. 好了,现在数据已经在下载了,但是我马上要有事离开了,为了让下载继续进行而不会断开,按下ctrl+a+d, 你会看到你正在运行的程序被detach了,也就是被扔到后台去执行了,而你也回到了screen之前的状态。这时你可以logout SSH,然后放心去爱干嘛干嘛了。
4. 等我回来重新login SSH后,输入screen -r name,你就会回到这个下载session;你会看到数据在这段时间内又下载了很多,或者干脆已经下载完啦!
这只是一个简单的用法介绍,screen命令的详细介绍可以参照:
http://bjzero.blogbus.com/logs/30983025.html
补充:
像我这种懒人,每次都忘记kill掉已经没用的screen session,结果一段时间之后就有一堆稀奇古怪名称的session,记也记不住。(可以用screen -ls 查看所有的session)
以下是两种kill session的方法:
1. attach to session之后,按ctrl+a (屏幕上暂时不会有任何反应),接着输入冒号“:”,然后输入quit, 回车,此session就被terminate了。
2. 如果想直接kill detached session, 输入命令
screen -S session_name -X quit