内容
SadServers 1問目の”Saint John”: what is writing to this log file?を解きます
問題文
説明: テスト プログラムを作成しました 開発者は、ログ ファイル/var/log/bad.log に継続的に書き込み、ディスクをいっぱいにする 。 たとえば次のようにして確認できます tail -f /var/log/bad.log.
このプログラムはもう必要ありません。 それを見つけて終了させてください。
→tail -f /var/log/bad.log へ書き込んでいるプログラムを特定し、終了させる
検証方法
テスト: ログ ファイルは過去 6 秒間変更されていません。 find /var/log/bad.log -mmin -0.1(このコマンドの詳細を知る必要はありません)。
→プログラム終了後に、実行するコマンド find /var/log/bad.log -mmin -0.1
解法
ログファイルに書き込んでいるプロセスを特定する
lsof /var/log/bad.log
【 lsof 】コマンド――オープンしているファイルを一覧表示する
bat.logに書き込んでいるプログラムがbatlog.pyであり、プロセスID(PID)が572であることが確認できた
プロセスIDを強制終了する
kill -9 572
【 kill 】コマンド/【 killall 】コマンド――実行中のプロセスを終了させる
プロセスID 572を強制終了する
ログに新規書き込みがされていないことを確認する(これは飛ばしても良い)
tail -f /var/log/bad.log
tailコマンドについて詳しくまとめました 【Linuxコマンド集】
確認終了はCtrl+cコマンドで
検証用コマンドを実行する
find /var/log/bad.log -mmin -0.1
findコマンドのmtimeオプションまとめ – Qiita
findコマンドでログファイルが最後に修正された日時が6秒以上前か確認している
私の解決策を確認してくださいをクリック
ちなみに私はヒントを見るまでpsコマンドで頑張ってプログラムを探していました・・・
コメント