scriptコマンドでコマンド実行の作業ログを保存する
背景 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 で読むと綺麗に読むことができます。 参考記事 https://qiita.com/networkelements/items/aa4aec5417306b4c7e71 https://mk-55.hatenablog.com/entry/2017/05/21/013930