あらまし
サーバ上でなにかしら作業する時にhistoryコマンドで見直してもいいけどだるいよね。
-> コマンドと実行結果をログに吐かせておこう。
環境
- CentOS 6.6
- 察しの言い方は既に何やろうとしてるか気づいてると思います。
Scriptコマンド
$ man script
- 早い話がこれで解決する。
使い方
### script <保存ファイル名(パスで指定してもいい)>
$ script log
スクリプトを開始しました、ファイルは log です #ここから
$ touch hogehoge
$ exit
exit
スクリプトを終了しました、ファイルは log です #ここまでが記録される
$ ls
hogehoge log
$ cat log
スクリプトは 2015年07月09日 06時17分01秒
に開始しました$ touch hogehoge
$ exit
exit
スクリプトは 2015年07月09日 06時17分10秒
に終了しました$
ちょこっと使い勝手を良くしたい
- いちいちファイル指定するのだるい
- 作業日時とユーザ名勝手に入れてよ
- OKわかった。
こうする
- ログの吐き出し先 : /var/log/logterm/
- ファイル名 : YYYYMMDDSS-ユーザ名.log
$ echo "alias logterm='sudo script /var/log/logterm/$(date +%Y%m%d%S)-`users`.log'" >> ~/.bashrc
$ source ~/.bashrc
[hogehoge@localhost ~]$ logterm
スクリプトを開始しました、ファイルは /var/log/logterm/2015070918-hogehoge.log です
[root@localhost hogehoge]# exit
スクリプトを終了しました、ファイルは /var/log/logterm/2015070918-hogehoge.log です
ログファイル開く時
catとかなら問題ないんだけど、エディタで開くと改行コードとかが鬱陶しい
$ vim /var/log/logterm/2015070918-hogehoge.log
スクリプトは 2015年07月09日 06時25分26秒
に開始しました^[]0;root@localhost:/home/hogehoge^G^[[?1034h[root@localhost hogehoge]# exit^M
スクリプトは 2015年07月09日 06時25分28秒
んでcolコマンドでゴニョる
$ col -bx < /var/log/logterm/2015070918-hogehoge.log > res.log
$ vim res.log
まだもうちょっとゴミついてるけどとりあえずここまで。
スクリプトは 2015年07月09日 06時25分26秒
に開始しました0;root@localhost:/home/hogehoge?1034h[root@localhost hogehoge]# exit
スクリプトは 2015年07月09日 06時25分28秒
に終了しました