1、背景
系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
2、简介
GNU Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。
1.会话恢复
2.多窗口
3.会话共享
GNU's Screen 官方站点:http://www.gnu.org/software/screen/
3、语法
参数说明
-A 将所有的视窗都调整为目前终端机的大小。
-d<作业名称> 将指定的screen作业离线。
-h<行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r<作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S<作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
4、常用screen参数
screen -Syourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
5、使用 screen
5.1安装screen
Linux发行版(例如Red Hat Enterprise Linux)通常会自带screen实用程序,如果没有的话,可以从GNU screen的官方网站下载。
[root@docker-01 ~]# yum install screen
5.2创建一个新的窗口
安装完成后,直接敲命令screen就可以启动它。但是这样启动的screen会话没有名字,实践上推荐为每个screen会话取一个名字,方便分辨:
[root@docker-01 ~]# screen -S david
screen启动后,会创建第一个窗口,也就是窗口No. 0,并在其中打开一个系统默认的shell,一般都会是bash。所以你敲入命令screen之后,会立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入Screen的世界了。当然,也可以在screen命令之后加入你喜欢的参数,使之直接打开你指定的程序,例如:
screen创建一个执行vi david.txt的单窗口会话。
[root@docker-01 ~]# screen vim david.txt
注
在screen当前窗口键入快捷键Ctrl+a+d
5.3重新连接会话
过了一段时间,你想继续操作之前的命令,做如下操作即可:
找到该screen会话:
[root@docker-01 ~]# screen -ls
There is a screen on:
19005.david (Attached)
1Socket in/var/run/screen/S-root.
重新连接会话:
[root@docker-01 ~]# screen -r 19005
5.4退出会话:
如果你的备份命令执行完了,不想再使用screen会话了,可以使用exit命令退出会话。
[root@docker-01 ~]# exit
[root@docker-01 ~]# screen -ls
No Sockets found in/var/run/screen/S-root.
关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。
有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信:
最近有一些星友咨询我知识星球的事,我也想继续在星球上发布更优质的内容供大家学习和探讨。运维猫公众号平台致力于为大家提供免费的学习资源。知识星球主要针对于在这方便工作、对运维特别感兴趣、想往运维方面发展的小伙伴。大家可以加入星球,一起探讨工作中的疑惑、技术上的难题、以及未来的发展趋势。
为了保证星球的质量,知识星球每周会发表两篇文章(周三和周末)。
知识星球会不定期的为大家提供更优惠或者免费运维峰会门票的福利。