Screen のログ機能とログファイルの閲覧

参考:http://d.hatena.ne.jp/yanma_4/20080330/1206803656


screen のログ機能は2種類ある。

コマンド 意味
^Z H ログ保存のON/OFFトグル
^Z h これまでのハードコピーを保存する
^Z : hardcopy filename これまでのハードコピーをfilenameに保存する


^Z H は制御文字も込みで入出力を記録する。
^Z h はスクリーンに表示された状態を記録する。


で、常にログを取るためには .screenrc に以下の2行を追加

#自動ログ保存
logfile "/home/username/log/screen-%Y%m%d-%n.log"
deflog on


これで、日付&ウィンドウ毎にログが取られるはず。。。


ついでに bash のPS1をいじくって、時間を表示するようにした。
これで、あとからログを参照とき実行した時間も一発でわかる。

PS1="\n\[\e[0;35m\]\u@\h\[\e[01;31m\](\t)\[\e[00m\]:\[\e[0;33m\]\w\[\e[00m\]\n\$ "

これで、以下のように表示される(実際は色つき)。

koba@javachallenge(01:59:21):~
$ 


ただ、制御文字も記録するので、普通に less で見るととても見辛い。
いろいろ調べると、以下のように-r(-R?)オプションを付けるといいっぽい。

less -R log/screen-20110913-0.log

ーr と ーR の違いはいまいち分からないけれど、ーr だと制御文字を処理するため表示されず、ーR だと制御文字を処理せず表示する感じっぽい。
コピペで他の人に見せるなら ーr のほうがいいのかな。