下面介紹如何記錄screen屏幕日誌。node
第一種方法:linux
啓動時添加選項-L(Turn on output logging.),會在當前目錄下生成screenlog.0文件。session
screen -L -dmS test的意思是啓動一個開始就處於斷開模式的會話,會話的名稱是test。ide
screen -r test鏈接該會話,在會話中的全部屏幕輸出都會記錄到screenlog.0文件。ui
第二種方法:命令行
不加選項-L,啓動後,在screen session下按ctrl+a H,一樣會在當前目錄下生成screenlog.0文件。日誌
第一次按下ctrl+a H,屏幕左下角會提示Creating logfile "screenlog.0".,開始記錄日誌。blog
再次按下ctrl+a H,屏幕左下角會提示Logfile "screenlog.0" closed.,中止記錄日誌。get
上面兩個方法有個缺點:當建立多個screen會話的時候,每一個會話都會記錄日誌到screenlog.0文件。screenlog.0中的內容就比較混亂了。it
解決方法以下,讓每一個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。
[root@linux-node1 ~]# screen -ls
There are screens on:
67495.test (Detached)
67752.test (Detached)
2 Sockets in /var/run/screen/S-root.
[root@linux-node1 ~]# screen -r 67495
進入67495窗口後,執行exit退出當前窗口。當一個會話中的全部窗口都被結束,則該會話會被自動終止,命令行會提示[screen is terminating]。此時在查看只有一個會話了:
[root@linux-node1 ~]# screen -ls
There is a screen on:
67752.test (Detached)
1 Socket in /var/run/screen/S-root.