在做一個大體積的數據備份時,在遠程終端上直接運行備份腳本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]