Linux Screen記錄螢幕日誌
阿新 • • 發佈:2018-11-19
screen是Linux視窗管理器,使用者可以建立多個screen會話,每個screen會話又可以建立多個window視窗,每一個視窗就像一個可操作的真實的ssh終端一樣。
下面介紹如何記錄screen螢幕日誌。
第一種方法
啟動時新增選項-L(Turn on output logging.)
會在當前目錄下生成screenlog.0
檔案。
screen -L -dmS test
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
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是需要執行的程式