screen是Linux視窗管理器,使用者可以建立多個screen會話,每個screen會話又可以建立多個window視窗,每一個視窗就像一個可操作的真實的ssh終端一樣。
screen詳解:http://www.linuxidc.com/Linux/2013-10/91612.htm
Linux Screen超簡明教程 http://www.linuxidc.com/Linux/2014-04/100040.htm
Linux下Screen的常用命令 http://www.linuxidc.com/Linux/2012-07/65358.htm
Zabbix通過郵件發送Screen圖形報表實現 http://www.linuxidc.com/Linux/2013-06/85759.htm
Linux虛擬終端命令Screen用法詳解 http://www.linuxidc.com/Linux/2013-07/87415.htm
Linux 技巧:使用 Screen 管理你的遠端工作階段 http://www.linuxidc.com/Linux/2013-10/91612.htm
下面介紹如何記錄screen螢幕日誌。
第一種方法:
啟動時添加選項-L(Turn on output logging.) 會在目前的目錄下產生screenlog.0檔案。
screen -L -dmS test的意思是啟動一個開始就處於斷開模式的會話,會話的名稱是test。
screen -r test串連該會話,在會話中的所有螢幕輸出都會記錄到screenlog.0檔案。
第二種方法:
不加選項-L,啟動後,在screen session下按ctrl+a H,同樣會在目前的目錄下產生screenlog.0檔案。
第一次按下ctrl+a H,螢幕左下角會提示Creating logfile "screenlog.0".,開始記錄日誌。
再次按下ctrl+a H,螢幕左下角會提示Logfile "screenlog.0" closed.,停止記錄日誌。
上面兩個方法有個缺點:當建立多個screen會話的時候,每個會話都會記錄日誌到screenlog.0檔案。screenlog.0中的內容就比較混亂了。
解決方案如下,讓每個screen會話視窗有單獨的記錄檔。
在screen設定檔/etc/screenrc最後添加下面一行:
logfile /tmp/screenlog_%t.log
%t是指window視窗的名稱,對應screen的-t參數。所以我們啟動screen的時候要指定視窗的名稱,例如:
screen -L -t window1 -dmS test的意思是啟動test會話,test會話的視窗名稱為window1。螢幕日誌記錄在/tmp/screenlog_window1.log。如果啟動的時候不加-L參數,在screen session下按ctrl+a H,日誌也會記錄在/tmp/screenlog_window1.log。
注意,如果寫成:logfile ./screenlog_%t.log 則是把記錄檔記錄到目前的目錄下。
例子:
screen -L -t name -S name ./name
第一個name是記錄日誌的名字,第二個name是screen -ls 列表展示出來的名字,第三個name是需要啟動並執行程式。
附錄:
源碼編譯安裝 screen
[root@web1 soft]# wget ftp://ftp.gnu.org/pub/gnu/screen/screen-4.0.3.tar.gz
[root@web1 soft]# tar -xvf screen-4.0.3.tar.gz
[root@web1 soft]# cd screen-4.0.3
[root@web1 screen-4.0.3]# ./configure
[root@web1 screen-4.0.3]# make
[root@web1 screen-4.0.3]# make install
[root@web1 screen-4.0.3]# install -m 644 etc/etcscreenrc /etc/screenrc
[root@web1 screen-4.0.3]# cp ./screen /bin
請注意:與一般程式的安裝過程有所不同,後面這兩條指令一定要執行
補充: 一次新安裝 screen時,按照上述步驟,make時報錯:
configure: error: !!! no tgetent - no screen
make: *** [install] 錯誤 1
解決方案如下:
yum -y install ncurses-devel