scriptコマンドで記録する内容にタイムスタンプを付与する
Pocket

LinuxやUNIXにおいて、ターミナルコンソールでの操作内容を残すのに都合の良いscriptコマンドだが、残念ながらそのコマンドがいつ実行されたのかは記録されない。
scriptコマンドで記録したログにタイムスタンプを付与するにはscriptコマンド単体ではなく、記録しているログにタイムスタンプを追記して出力させる必要がある。以前記述した、scriptコマンドの内容をsyslogで管理させる方法と同じような手法を取る必要がある。

具体的には、各ユーザーの「.bash_profile」などに以下の内容を追記する。

Sponsored Links

SCRIPT_FILE="script_`date +%Y%m%d_%H%M%S.log`"
touch $HOME/.$SCRIPT_FILE
tail -F $HOME/.$SCRIPT_FILE | awk '{ print strftime("%Y/%m/%d %H:%M:%S") " " $0 } {system (" ")}' > $HOME/$SCRIPT_FILE &
SCRIPT_PROCESS=&!
script -fq $HOME/.$SCRIPT_FILE
kill $SCRIPT_PROCESS &
rm -f $HOME/.$SCRIPT_FILE &
exit

 

これで、ホームディレクトリ配下にタイムスタンプ付きの操作ログが記録されるようになる。

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

This article has 2 comments

  1. Pingback: Pythonによるssh自動接続用スクリプト(試作) | 俺的備忘録 〜なんかいろいろ〜

  2. Pingback: iterm2でターミナルログを自動的に取得させる | 俺的備忘録 〜なんかいろいろ〜

Leave a Comment

メールアドレスが公開されることはありません。