Linux下screen命令,一個對運維人員特別有幫助的命令

在什麼情況下使用該命令

系統管理員經常需要SSH 或者telent 遠程登錄到Linux 服務器,經常運行一些需要很長時間才能完成的任務,比如系統備份、ftp 傳輸等等。通常情況下我們都是爲每一個這樣的任務開一個遠程終端窗口,因爲它們執行的時間太長了。必須等待它們執行完畢,在此期間不能關掉窗口或者斷開連接,否則這個任務就會被殺掉,一切半途而廢了。


功能

會話恢復

多窗口

會話共享


語法

# screen [-AmRvx -ls -wipe][-d <作業名稱>][-h <行數>][-r <作業名稱>][-s ][-S <作業名稱>]

參數說明

-A  將所有的視窗都調整爲目前終端機的大小。
-d <作業名稱>  將指定的screen作業離線。
-h <行數>  指定視窗的緩衝區行數。
-m  即使目前已在作業中的screen作業,仍強制建立新的screen作業。
-r <作業名稱>  恢復離線的screen作業。
-R  先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業。
-s  指定建立新視窗時,所要執行的shell。
-S <作業名稱>  指定screen作業的名稱。
-v  顯示版本信息。
-x  恢復之前離線的screen作業。
-ls或--list  顯示目前所有的screen作業。
-wipe  檢查目前所有的screen作業,並刪除已經無法使用的screen作業。


安裝

使用yum命令安裝screen程序包:

#yum install screen


創建與使用會話功能

完成安裝後直接運行screen即可使用服務,推薦爲每個會話取一個名字,方便分辨

創建名稱爲backup的會話:

#screen -S backup

查看當前已經存在的會話:

[root@linuxprobe~]# screen -ls

There is a screenon:

32230.backup(Attached)

1 Socket in/var/run/screen/S-root.

當執行screen命令後會調用系統默認的shell(通常即bash),所以敲完screen命令後會立即返回一個命令提示符,雖然看起來與剛剛沒有變化,但此時你已經進入screen會話啦!

創建一個會話,初始爲用vim編輯器寫文件:

[root@linuxprobe~]# screen vim memo.txt

退出vim後會話也會被自動被刪除:

[root@linuxprobe~]# screen -ls

There is a screenon:

32230.backup(Attached)

1 Socket in /var/run/screen/S-root.

新建一個叫做linuxprobe的會話:

[root@linuxprobe~]# screen -S linuxprobe

列出當前所有會話(有兩個哦):

[root@linuxprobe~]# screen --ls

There are screenson:

32403.linuxprobe(Attached)

32230.backup(Attached)

2 Sockets in/var/run/screen/S-root.

回到backup會話中:

[root@linuxprobe~]# screen -r backup

linuxprobe會話離線:

[root@linuxprobe~]# screen -d linuxprobe

[remote detachedfrom 32403.linuxprobe]

再次查看會話狀態(linuxprobe已經被離線了):

[root@linuxprobe~]# screen -ls

There are screenson:

32403.linuxprobe(Detached)

32230.backup(Attached)

2 Sockets in/var/run/screen/S-root.

將當前會話離線並回到linuxprobe會話中:

[root@linuxprobe~]# screen -d -r linuxprobe

[32403.linuxprobedetached.]

回到linuxprobe會話後,狀態又改變了:

[root@linuxprobe~]# screen -ls

There are screenson:

32403.linuxprobe (Attached)

32230.backup(Attached)

2 Sockets in/var/run/screen/S-root.

[/pre]

總結來說:screen會話甚至爲暫時斷開(detach),那麼會話窗口中的程序依然會執行。隨後將會話重新連接(attach),那麼即可重新控制會話窗口中運行的程序啦。

共享功能

會話共享功能是一件很酷的事,它讓多個用戶同時使用某一個會話,甚至讓您和對方看到相同的終端內容,拓撲如下:

將兩臺Linux主機均連入同一個服務器:
在主機A的終端上執行創建會話的操作:

[root@linuxprobe ~]# screen -S linuxprobe

在主機B的終端上同步會話信息:

[root@linuxprobe ~]# screen -x

那麼此時終端A與終端B上做的任何操作,都可以實時同步到對方的屏幕上,真的很酷哦!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章