使用screen后台实时执行命令

  在做一个大体积的数据备份时,在远程终端上直接运行备份脚本back.sh,或运行back.sh&放到后台运行,此时关闭远程终端,或网络断开都会让命令停止运行。此时就要使用到screen命令。

  screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口一样。

(1).安装screen软件包

  可以直接使用yum安装

[root@xuexi ~]# yum -y install screen

  也可以挂载CentOS7的光盘镜像安装

[root@xuexi ~]# rpm -ivh /mnt/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm 
准备中...                          ################################# [100%]
正在升级/安装...
   1:screen-4.1.0-0.25.20120314git3c29################################# [100%]

(2).screen使用方法

  直接在命令行键入screen命令

[xf@xuexi ~]$ screen

  screen会创建一个全新的shell窗口,你可以执行任意程序,就像在ssh窗口一样。

  比如说我们使用vim创建一个txt文件,并输入一部分数据。

[xf@xuexi ~]$ vim a.txt
//并随意输入一些数据
a
bb
ccc
dddd
eeeee
ffffff

  输入完成后退出插入模式回到正常模式,按下<Ctrl>+a+d。此时会显示如下部分

[root@xuexi ~]# screen
[detached from 10992.pts-0.xuexi]  //分离出一个独立的会话

  一段时间后,或者关闭了当时的终端,如果还想要回到之前的screen会话

[root@xuexi ~]# screen -ls  //查看已经建立会话的ID
There is a screen on:
	10992.pts-0.xuexi	(Detached)
1 Socket in /var/run/screen/S-root.

[root@xuexi ~]# screen -r 10992  //重新建立会话

  分离出独立会话后,即使关闭当前终端,也可再次使用。如果想关闭screen会话,使用exit命令。

(3).常用参数

screen -S [会话名称]  指定建立会话的名称

[root@xuexi ~]# screen -S test
[detached from 11347.test]
[root@xuexi ~]# screen -ls
There is a screen on:
	11347.test	(Detached)
1 Socket in /var/run/screen/S-root.

screen -ls  列出当前所有的会话

screen -r [会话ID|会话名称]  回到指定会话,可以是会话名称,也可以是会话ID

[root@xuexi ~]# screen -r test
[detached from 11347.test]
[root@xuexi ~]# screen -r 11347
[detached from 11347.test]

  

posted @ 2019-02-20 10:51  苦逼运维  阅读(4803)  评论(0编辑  收藏  举报