背景

Linuxでコマンドの実行ログを保存したいことは非常に多いと思います。これは、後で見返せるようにするためでもありますし、派遣社員などの場合は自分の身を守るための手段にもなります。

使用方法

script <ログを保存したいファイル名> 

ファイル名を指定しなかった場合は、カレントディレクトリにtypescript というファイルで保存されます

日付の入ったファイル名で保存したい場合

script `date +%Y%m%d`.log

このようにすれば日付名で作業ログを保存できます。

実際に使ってみます。

$ script
スクリプトを開始しました、ファイルは typescript です
$ date
2021年  3月 28日 日曜日 06:46:13 EDT

終了する場合はexitするかctrl+dを実行します

$ exit
exit
スクリプトを終了しました、ファイルは typescript です

ファイルにログが残っているか確認する

$ cat typescript
スクリプトは 2021年03月28日 06時46分11秒
 に開始しました$ date
2021年  3月 28日 日曜日 06:46:13 EDT
$ exit
exit

スクリプトは 2021年03月28日 06時47分10秒
 に終了しました

きちんと記録されていました。

既存ファイルへの追記方法

次に、ファイルへの追記方法を記載します。 同じファイルに追記したい場合はオプション-aを使うことで可能です。

ログファイルをlessコマンドで綺麗に読むためには

scriptコマンドで取得したログにエスケープシーケンスが含まれる場合、普通のテキストとして読むとエスケープシーケンスがESCのように表示され可読性が非常に落ちます。この場合、

less -R

で読むと綺麗に読むことができます。

参考記事