1. 程式人生 > >Linux Screen記錄螢幕日誌

Linux Screen記錄螢幕日誌

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是需要執行的程式