作為linux伺服器管理員,經常要使用ssh登陸到遠端linux機器上做一些耗時的操作。
也許你遇到過使用telnet或ssh遠端登入linux,執行一些程式。如果這些程式需要執行很長時間(幾個小時),而程式執行過程中出現網路故障,或者客戶機故障,這時候客戶機與遠端伺服器的鏈結將終端,並且遠端伺服器沒有正常結束的命令將被迫終止。
又比如你ssh到主機上後,開始批量的scp命令,如果這個ssh執行緒斷線了,scp程序就中斷了。在遠端伺服器上正在執行某些耗時的作業,但是工作還沒做完快要下班了,退出的話就會中斷操作了,如何才好呢?
我們利用screen命令可以很好的解決這個問題。實現在斷開ssh的情況下,在伺服器上繼續執行程式。
那什麼是screen命令?
screen被稱之為乙個全屏視窗管理器,用他可以輕鬆在乙個物理終端上獲得多個虛擬終端的效果。
screen功能說明:
簡單來說,screen是乙個可以在多個程序之間多路復用乙個物理終端的視窗管理器,這意味著你能夠使用乙個單一的終端視窗執行多終端的應用。screen中有會話的概念,使用者可以在乙個screen會話中建立多個screen視窗,在每乙個screen視窗中就像操作乙個真實的telnet/ssh連線視窗那樣。
screen命令語法:
screen [-amrvx -ls -wipe][-d 《作業名稱》][-h 《行數》][-r 《作業名稱》][-s ][-s 《作業名稱》]
screen命令引數:
-a -[r|r] 將所有的視窗都調整為目前終端機的大小。
-c filename 用指定的filename檔案替代screen的配置檔案』.screenrc』.
-d [pid.tty.host] 斷開screen程序(使用該命令時,screen的狀態一定要是attached,也就是說有使用者連在screen裡)。一般程序的名字是以pid.tty.host這種形式表示(用screen -list命令可以看出狀態)。
-d [pid.tty.host] 與-d命令實現一樣的功能,區別就是如果執行成功,會踢掉原來在screen裡的使用者並讓他logout。
-h 《行數》 指定視窗的緩衝區行數。
-ls或–list 顯示目前所有的screen作業。
-m 即使目前已在作業中的screen作業,仍強制建立新的screen作業。
-p number or name 預先選擇乙個視窗。
-r [pid.tty.host] 恢復離線的screen程序,如果有多個斷開的程序,需要指定[pid.tty.host]
-r 先試圖恢復離線的作業。若找不到離線的作業,即建立新的screen作業。
-s shell 指定建立新視窗時,所要執行的shell。
-s 《作業名稱》 指定screen作業的名稱。(用來替代[pid.tty.host]的命名方式,可以簡化操作).
-v 顯示版本資訊。
-wipe 檢查目前所有的screen作業,並刪除已經無法使用的screen作業。
-x 恢復之前離線的screen作業。
screen命令的常規用法:
screen -d -r:連線乙個screen程序,如果該程序是attached,就先踢掉遠端使用者再連線。
screen -d -r:連線乙個screen程序,如果該程序是attached,就先踢掉遠端使用者並讓他logout再連線
screen -ls或者-list:顯示存在的screen程序,常用命令
screen -m:如果在乙個screen程序裡,用快捷鍵crtl+a c或者直接打screen可以建立乙個新視窗,screen -m可以新建乙個screen程序。
screen -dm:新建乙個screen,並預設是detached模式,也就是建好之後不會連上去。
screen -p number or name:預先選擇乙個視窗。
screen實現後台執行程式的簡單步驟:
1> 要進行某項操作時,先使用命令建立乙個screen:
[linux@user~]$ screen -s test1
2>接著就可以在裡面進行操作了,如果你的任務還沒完成就要走開的話,使用命令保留screen:
[linux@user~]$ ctrl+a+d #按ctrl+a,然後再按d即可保留screen
[detached] #這時會顯示出這個提示,說明已經保留好screen了
如果你工作完成的話,就直接輸入:
[linux@user~]$ exit #這樣就表示成功退出了
[screen is terminating]
3> 如果你上一次保留了screen,可以使用命令檢視:
[linux@user~]$ screen -ls
there is a screen on:
9649.test1 (detached)
恢復screen,使用命令:
[linux@user~]$ screen -r test1 (or 9649)
screen命令中用到的快捷鍵
ctrl+a c :建立視窗
ctrl+a w :視窗列表
ctrl+a n :下乙個視窗
ctrl+a p :上乙個視窗
ctrl+a 0-9 :在第0個視窗和第9個視窗之間切換
ctrl+a k(大寫) :關閉當前視窗,並且切換到下乙個視窗(當退出最後乙個視窗時,該終端自動終止,並且退回到原始shell狀態)
exit :關閉當前視窗,並且切換到下乙個視窗(當退出最後乙個視窗時,該終端自動終止,並且退回到原始shell狀態)
ctrl+a d :退出當前終端,返回載入screen前的shell命令狀態
linux的screen命令挺不錯,在伺服器上做點什麼費時的工作就不用愁了!
Linux screen命令詳解
linux下screen主要是管理程式的,用screen管理的程序可以在使用者斷開連線的時候保持程式繼續在伺服器上執行。第一步 首先肯定是登入到linux伺服器上。敲入screen ls 命令可以看到伺服器上已有的screen。用screen s s的大寫 screen名稱可以建立乙個screen。...
linux screen 命令詳解
使用telnet或ssh遠端登入linux時,如果連線非正常中斷 遠端機器關閉 重新連線時,系統將開乙個新的session,無法恢復原來的session.screen命令可以解決這個問題。screen工具是乙個終端多路轉接器,在本質上,這意味著你能夠使用乙個單一的終端視窗執行多終端的應用。1,開啟乙...
linux screen 命令詳解
linux screen 命令詳解 功能說明 多重視窗管理程式。語 法 screen amrvx ls wipe d 作業名稱 h 行數 r 作業名稱 s s 作業名稱 補充說明 screen為多重視窗管理程式。此處所謂的視窗,是指乙個全螢幕的文字模式畫面。通常只有在使用telnet登入主機或是使用...