システムのアカウンティング情報を取得する
コマンドの実行履歴を取っておくのに、
システムアカウンティングを有効にしておくのもいいと思います。
ということで、今日は「psacct」を使ってみます。
準備
通常初期状態では有効になっていないので、以下の作業を行います。
- プロセスアカウンティングを有効にする
# /etc/init.d/psacct start プロセスアカウントを開始中: [ OK ]
- 起動時にプロセスアカウンティングを有効にする
# chkconfig --level 345 psacct on # chkconfig --list psacct psacct 0:off 1:off 2:off 3:on 4:on 5:on 6:off
使う
採取した情報を見てみます。
saコマンド
saコマンドでコマンド実行の統計情報を表示します。
# sa 82 1.29re 0.01cp 1257k 5 0.01re 0.00cp 2162k rpmq 3 0.00re 0.00cp 1555k troff 5 0.02re 0.00cp 956k ***other 3 0.31re 0.00cp 1389k man 3 0.00re 0.00cp 1386k grotty 3 0.30re 0.00cp 666k less 3 0.02re 0.00cp 1593k nroff 9 0.01re 0.00cp 1229k iconv 9 0.00re 0.00cp 748k gunzip 6 0.30re 0.00cp 1407k sh* 6 0.00re 0.00cp 1132k rm 4 0.00re 0.00cp 1399k chkconfig 3 0.30re 0.00cp 1407k sh 3 0.01re 0.00cp 1467k groff 3 0.00re 0.00cp 892k gtbl 3 0.00re 0.00cp 727k mktemp 3 0.00re 0.00cp 1593k nroff* 3 0.00re 0.00cp 1365k cat 3 0.00re 0.00cp 1372k locale 2 0.00re 0.00cp 1304k initlog
「sa -m」でユーザー別になります。
# sa -m 83 1.29re 0.01cp 1250k root 83 1.29re 0.01cp 1250k
lastcommコマンド
「lastcomm」コマンドで実行されたコマンドの一覧を表示します。
「--user」「--command」「--tty」オプションで条件を指定できます。
# lastcomm cp root __ 0.00 secs Thu Jul 8 14:52 date root __ 0.00 secs Thu Jul 8 14:52 prelink root __ 0.00 secs Thu Jul 8 14:52 find root __ 0.00 secs Thu Jul 8 14:52 grep root __ 0.00 secs Thu Jul 8 14:52 renice root __ 0.00 secs Thu Jul 8 14:52 awk root __ 0.00 secs Thu Jul 8 14:52 logrotate root __ 0.00 secs Thu Jul 8 14:52 logrotate root __ 0.02 secs Thu Jul 8 14:52 sh root __ 0.00 secs Thu Jul 8 14:52 kill root __ 0.00 secs Thu Jul 8 14:52 sh root __ 0.00 secs Thu Jul 8 14:52 cat root __ 0.00 secs Thu Jul 8 14:52 sh root __ 0.00 secs Thu Jul 8 14:52 puppet root __ 0.01 secs Thu Jul 8 14:52 initlog root __ 0.00 secs Thu Jul 8 14:52 puppet root __ 0.00 secs Thu Jul 8 14:52 pidof root __ 0.01 secs Thu Jul 8 14:52 pidof root __ 0.01 secs Thu Jul 8 14:52 puppet root __ 0.00 secs Thu Jul 8 14:52 consoletype root __ 0.00 secs Thu Jul 8 14:52 puppetmaster root __ 0.00 secs Thu Jul 8 14:52 puppetmaster root __ 0.00 secs Thu Jul 8 14:52 consoletype root __ 0.00 secs Thu Jul 8 14:52 accton root __ 0.00 secs Thu Jul 8 14:52
他
実運用で使う場合、ログの管理要件が重要になります。
パッケージを使っている場合は、「logrotated」でローテーションされるようになっています。
# prerotate loses accounting records, let's no #prerotate # /usr/sbin/accton #endscript compress delaycompress notifempty daily rotate 31 create 0600 root root postrotate /usr/sbin/accton /var/account/pacct endscript }
必要に応じて設定変えてやればよいかと思います。
今日はこんなところで。