今まで下記のようにexecで標準出力と標準エラー出力を作業ログに残すという事をしてたんですが、実際に打ったコマンドは出力されないので、ちょっと不便だなーと思ってました。
exec > >(tee --append /tmp/$(date +"%Y.%m.%d")_$(id --user).work.log) 2>&1
ちょっと調べて見るとscriptコマンドを使うとコマンドを含めて出力できることを知りました。
これで作業ログを残すのがはかどる!
script --append --flush /tmp/$(date +"%Y.%m.%d")_$(id --user).work.log
チームメンバーにこのログをtailさせておけば、画面共有も出来たりもします。
(その用途ならホントはwemuxとか使った方が良いんでしょうけどね。。
tail -F /tmp/$(date +"%Y.%m.%d")_$(id --user).work.log
ライフチェンジ!
ただし、自分の環境だとscript上でtmux立ち上げるとtmuxのフッターのバーの出力がおかしくなるので、単体windowで実行した方がよさげ。
その辺もう少し、解決できるソリューションが欲しいけど、ひとまずやりたいことができて満足。
追記:
tmuxだとこのやり方が良さそう
- tmuxのpipe-paneを利用してリモートサーバでの作業ログをローカルに記録する