目次~
#contents
*概要 [#bf110241]
システムにログインした直後から、自動的にコマンドの実行履歴をファイルに記録する方法。~
本項の前提として、ログインシェルがbashであること。~

*設定 [#gfed0950]
ログを記録したいユーザの.bashrcに以下の内容を追記する。~

**ログ記録の設定 [#o22f408c]
ログはホームディレクトリ直下のCommand-LogsディレクトリにYYYY-MM-DD_HH-MM-SS.logの形式で保存される。~
尚、ログ保存用ディレクトリが存在しない場合には、自動的にディレクトリを作成する。~

**ログ記録の設定 [#o22f408c]
 ##
 ## Command Log
 ##
 
 LOGDIR="Command-Logs"
 
 test -d ~/$LOGDIR || mkdir ~/$LOGDIR
 _script="/usr/bin/script"
 _p_proc=`ps aux | grep -e "${PPID} " | grep -v grep | awk '{print $11}'`
 
 if [ "x${_p_proc}" != "x${_script}" ]; then
     ${_script} -q ~/$LOGDIR/`date +%Y-%m-%d_%H-%M-%S`.log
     exit
 fi
 
 unset _script
 unset _p_proc

**ログのアーカイブ化 [#c477e08f]
出力結果も含めて全て記録されるため、放置するとログは相応の容量となる。~
このため、6ヶ月前のログはまとめてアーカイブ化して削除する処理を追加する。~

 ##
 ## Log Archive
 ##
 
 OLDLOG=`date -d '6 month ago' +%Y-%m`
 
 ls -la ~/$LOGDIR | grep $OLDLOG-[0-9][0-9]_ | grep -v grep > /dev/null
 if [ $? -eq 0 ]; then
  cd $LOGDIR
  tar cfvz $OLDLOG.tgz ./$OLDLOG-[0-9][0-9]_*.log > /dev/null
  rm -f ./$OLDLOG-[0-9][0-9]_*.log > /dev/null
 fi
 cd ~




トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS