敵のいない勉強部屋

勉強記録用。土日を中心に更新。

/etc/profileとscriptコマンド

ターミナルのログを残すために/etc/profileにscriptコマンドを書いて運用していたが、

書き方が原因でcloudstackの起動スクリプトがフリーズしたため対処法をここに記録。

 

・これまでの悪い書き方

# grep script /etc/profile

script /var/log/script/`date "+%Y%m%d%H%M%S"`.log

 この書き方ではscriptコマンドが無限ループし、最悪の場合サーバ全体がダウンするそうな…笑

結構恐ろしいことをしていたようだ。

 

・新しい書き方

P_PROC=`ps aux | grep $PPID | grep sshd | awk '{ print $11 }'`
if [ "$P_PROC" = sshd: ]; then
script -q /var/log/script/`whoami`_`date '+%Y%m%d%H%M%S'`.log
exit

参考サイトの内容を引用させてもらった。

scriptコマンドの親プロセスがsshdの時だけ作動するように分岐しているようだ。

whoamiを使うとGood,ということも勉強になった。

参考サイト

scriptとpsacctでオペレーションログを記録する | Developers.IO