LoginSignup
0
0

More than 5 years have passed since last update.

CygwinとUbuntu on Windowsで操作ログを記録できるようにしてみた

Last updated at Posted at 2016-08-26

狙い

teratermやPuttyで接続するときのようにCygwinやUbuntu on Windowsでも
操作ログをエビデンスとして残したいなと思ったのでscriptコマンドを.bashrcに組み込んでみた
(自分の管理用なので制御コードの除外は割愛)

はまりどころ

scriptコマンドを適当に.bashrcに組み込んだら
挙動を全然理解していなかったので.bashrcがひたすら読み込まれ多重起動地獄

解決策

最初に起動する親プロセスの場合のみscriptコマンド実行する

Cygwinの場合は/usr/bin/mintty
Ubuntu on Windowsの場合は/init

ps auxの結果を目的に一致するようにごちゃごちゃやって抽出

他のscriptコマンドでログ記録している方たちの情報を参照しつつ環境に合わせる
Cygwinのps結果は表示が少なかったりしたので合わせる
grep結果が複数該当するのでheadとかtailで1行抽出
sortで順番を変えたりする

ソース

Cygwin

P_PROC=`ps aux | grep "${PPID}" | awk '{print $8}' | sort | tail -1`
CMD_MINTTY=/usr/bin/mintty
if [ ${P_PROC} = ${CMD_MINTTY} ]; then
  script ${HOME}/log/$(date +%Y%m%d_%H%M%S)_$(whoami).log
fi

Ubuntu on Windows

P_PROC=`ps aux | grep "${PPID}" | awk '{print $11}' | head -1`
CMD_INIT=/init
if [ ${P_PROC} = ${CMD_INIT} ]; then
  script ${HOME}/log/$(date +%Y%M%S)_$(whoami).log
fi
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0