コマンドの実行履歴
作業記録のために調べたけど,ぐぐると侵入検知関連で色々引っかかる.
lastcomm
BSD Process Accounting という機能らしい.Gentoo では sys-process/acct というパッケージだった.
# emerge -av acct # lastcomm couldn't open file '/var/account/pacct': No such file or directory # /etc/init.d/acct start * Caching service dependencies ... [ ok ] * Starting accounting ... accton: Function not implemented [ !! ] # vi /usr/src/linux/.config # CONFIG_BSD_PROCESS_ACCT is not set
カーネルで当該機能が有効になっている必要があるらしい.
# cd /usr/src/linux # make menuconfig General setup -> BSD Process Accounting General setup -> BSD Process Accounting version 3 file format # mount /boot # make && make install # shutdown -r now # /etc/init.d/acct start * Starting accounting ... [ ok ] # rc-update add acct default * acct added to runlevel default
シェルから起動したコマンドだけでなく,コマンドから連鎖的に起動されたコマンドも記録されるため,作業記録という意味では冗長な情報が多い.
HISTTIMEFORMAT
Bash 3 系列だと
export HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S : "
などとすると .bash_history にコマンドの実行時間が記録されるらしい.加えて
export HISTSIZE=1000000 export HISTFILESIZE=1000000
script
作業記録という意味では,実行したコマンドだけでなく画面の出力も記録される script の方がよさそう.ただ,手動では実行し忘れてしまうので,/etc/profile や ~/.bash_profile の末尾に
script ~/.script/typescript-`date +%Y%m%d%H%M%S`; exit
と書いておくとよい.後で vi などで開いて制御文字がうざいときは less -R などで.