🐙
[SadServers] 解説 "Saint John": what is writing to this log file?
"Saint John": what is writing to this log file?
SadServersの問題の解説です。 URLは、https://sadservers.com/newserver/saint-john
SadServers って何? って人は、 SadServers解説 を見てください。
一言でいうと、LeetCode (コーディング問題集) の Linuxサーバ設定版のようなものです。
問題
Level: Easy
Description: A developer created a testing program that is continuously writing to a log file /var/log/bad.log and filling up disk. You can check for example with tail -f /var/log/bad.log.
This program is no longer needed. Find it and terminate it.
ある開発者が作成したテストプログラムが、ログファイル /var/log/bad.log に書き込み続け、ディスクを一杯にしています。例えば、tail -f /var/log/bad.logで確認できます。
このプログラムはもう必要ありません。見つけて終了させてください。
解き方
/var/log/bad.log
にログが出力され続けています。 ですが、どのプログラムが、/var/log/bad.log
をログを書き込んでいるのかわかりません。そのプログラムを見つけて、停止させます。
# lsof コマンドで、/var/log/bad.log ファイルを開いているプロセスを探す
ubuntu@ip-172-31-32-108:/$ lsof /var/log/bad.log
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
badlog.py 601 ubuntu 3w REG 259,1 10323 67701 /var/log/bad.log
# PID 601の badlog.py というプロセスということがわかるので、 PID 601を殺す
kill -9 601
# tail -f を実行し、ログが増えないことを確認する。
tail -f /var/log/bad.log
コマンド解説
- lsof: オープンしているファイルのプロセスを表示します。
- kill: プロセスを終了します。
-9
で SIGKILLを送って、強制終了します。
Discussion