GNU Screenを使ってログを取る自分の方法
GNU Screenを使ってログを取る方法を調べてみるとログファイルとハードコピーという方法があるようです。
でも、ログファイルは画面に出力された文字だけでなく、コマンドライン操作のときに入力した制御文字も出力されるのであんまり好きではありません。
ということで、僕はハードコピーを使ってログを取っています。
デフォルトでは^Ahのキーに割り当てられているhardcopyという命令を実行することで現在表示されているイメージを"hardcopy.n"(nはウィンドウ番号)というファイルに出力してくれます。
.screenrcに色々記述を加えて自分好みにしています。
1 hardcopy_append on 2 bind h hardcopy -h ~/.screen/hardcopy/${YSC}/${MSC}/${YSC}${MSC}${DSC}hard.log
1番目のオプションによって、ファイルにハードコピーが追記されるようになります。
2番目のキーバインドではデフォルトの設定を変更して、スクロールバファの内容も含めてファイルにハードコピーが記述されるようになり、また、保存されるファイル名を変更しています。これらの変数は.zshrcに以下のように記述して定義しています。
export YSC=`date +%y` export MSC=`date +%m` export DSC=`date +%d`
ファイル名の指定で%Dとか%mとかのメタ文字を指定できればこのようなことをしなくていいんですけど。
とりあえず、今のところ、こんな感じです。
最後に試行錯誤の記録を残しておきます。
hardcopy -h "hardcopy.%d%n" bind h hardcopy -h "hardcopy-%Y%m%d-%n.log" bind h hardcopy -h $HOME/.screen/hardcopy/${YSC}/${YSC}_${MSC}_${DSC}hard.log hardcopydir $HOME/.screen/hardcopy/$YSC/$MSC/$DSC #hardcopy fileのディレクトリを指定 hardcopydir $HOME/.screen/hardcopy hardcopydir $HOME/.screen/%Y%m%d exec /bin/date#setenv DATE=`exec /bin/date +%Y`" hardcopydir $HOME/.screen/hardcopy/$DATE #ログファイルは制御文字が入って使いにくい logtstamp on logtstamp after 10