こんばんは。
どこかの初級エンジニアです
YouTubeを見ていたところ「SadServersの問題をAIに解いてもらい、
入力するだけでも学習になる」という動画を見たので実際にやってみます。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
問題文を要約したものが下記になります
「テストプログラムが不要になり、ログファイル /var/log/bad.log への
継続的な書き込みでディスクが圧迫されています。
この問題を解決するためプログラムを特定して終了しましょう。
その際ログファイルのサイズが変化しないかを確認しましょう。
「ソリューションを確認」ボタンで実行されるスクリプト
/home/admin/agent/check.sh を活用可能です。」
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
これをWindows標準で内臓されている、Copilot君に解いてもらいました
実行結果は以下の通りです
-
「ログファイルへの書き込みプロセスを特定する」
スクリプト /home/admin/agent/check.sh を実行してみましょう。
もしかすると、このスクリプトはログファイルを
継続的に書き込むプロセスを見つけて終了する助けになるかもしれません。
同時に、以下のコマンドを活用してプロセスを調査できます
[lsof /var/log/bad.log]ログファイルを開いているプロセスを確認。
[fuser -v /var/log/bad.log]どのプロセスがログファイルを使用しているか特定。 -
「プロセスを終了する」
ログファイルを書き込んでいるプロセスを特定したら、以下を試してください。
プロセスID(PID)を使用して[kill -9 [PID] ]で強制終了。
サービスとして実行されている場合は、[systemctl stop [サービス名]]を使用して停止。 -
自動実行を防止する
不要なプログラムが再起動しないようにするには、以下を実行してください。
[systemctl disable [サービス名] ]で自動起動を無効化。 -
ログファイルのサイズ変化を監視
プロセスを停止した後、[tail -f /var/log/bad.log]を再度実行して
ログファイルのサイズが変化しないか確認してください
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
\ありがとうCopilot君/
教えてもらった内容の1.のコマンドを入力している時に
「あれ、lsof実行結果のプロセス名ってどこの事だっけ」となりまして
すかさずCopilot君に質問しました。
実行結果は以下の通りです
lsof コマンドの出力でプロセス名は、COMMAND 列に表示されます。
この列は、そのプロセスがどのプログラムやコマンドによって
実行されているかを示しています。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
\ありがとうCopilot君/
2.のプロセスIDについては、まんま「PID」の表記だったため問題なく
その他に不明点もなかったので、順序通りにコマンド入力しました
すべて入力し終わり、「私の解決策を確認する」を押してみました
すると...
AIを駆使して初めてクリアしました!
(ほとんどCopilot君のおかげ)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
他の設問もあるみたいなので、少しずつ学習していきたいですね
では、おやすみなさい~