ディスクを空けろ
初段 / 目安 25分
夜中に事務局のサーバーが書き込みに失敗し、朝いちばんで鴫原さんが電話をよこしました。
「サイトの更新をかけたら『空きがない』と怒られた。うちのサーバーは1.7ギガしかない小さいやつだが、そんなに使うものを置いた覚えは無いんだ。どこかに太ったやつがおる」
ディスクが埋まる障害は、慌てて手当たり次第に消すのが一番危険です。消してはいけないものを消すと、次はサーバーごと起きなくなります。探してから消すという順番を、ここで身に付けてください。
上から順に降りていく
最初に見るのは全体です。df はファイルシステムごとの容量と使用率を出します。-h を付けると人間に読める単位になります。
ターミナル
df -hこれで「どのファイルシステムが埋まっているか」が分かりますが、「どのディレクトリが太っているか」は分かりません。それを見るのが du です。-s はまとめて1行、-h は読みやすい単位、-m はメガバイト単位です。
ターミナル
du -sh /var/*こう書くと /var の直下がそれぞれ何メガあるか並びます。太い行が見つかったら、その中で同じことを繰り返します。/var が太い、その中の /var/log が太い、その中の何が太い、と一段ずつ降りていくのが基本の型です。大きい順に並べたいときは sort -h に通します。
ターミナル
du -sh /var/log/* | sort -h | tail -5消す前に、それが何かを確かめる
太いファイルを見つけても、すぐ rm を打たないでください。ログの本体を消すと、動いているプログラムが書き込み先を失って別の障害になります。今日のように、世代を回して残っている古いログや、誰かが検証で置いたまま忘れた大きなファイルは、消してよいものの典型です。ls -lh で大きさと日付を見て、名前で見当を付けてから消します。
消すのは rm です。ディレクトリごと消すなら -r を付けますが、この問題では要りません。rm -rf / のような、範囲を確かめずに再帰で消す打ち方は絶対にしないでください。 打ち間違えても取り消せません。ゴミ箱はありません。
安全に近づく手順として、消す前に同じ引数で ls を打つ癖を付けておくと効きます。ls で出た顔ぶれがそのまま消える顔ぶれです。そこに見覚えのないものが混じっていたら、まだ rm を打つ段階ではありません。
完成条件
/の使用率を 40% 未満まで下げること- 消してよい大きなファイルだけを消すこと。データ本体である
/opt/yumesaku/dataの中身と、現役のログ/var/log/yumesaku/access.logは残すこと - 何を消したかを
/root/keshita.txtに書き残すこと。1行に1つ、消したファイルの絶対パスです
事後に「なぜ空いたのか」を説明できないと、次に同じことが起きたときに誰も追えません。空けた本人が覚えているうちは何とかなりますが、半年後の自分は他人です。記録まで含めて障害対応だと考えてください。
進め方
df から始めてください。手が止まったらヒントを開けます。ヒントは3段階で、①方針、②使うコマンド、③部分解の順に出ます。1つも開けずに通せたら、その問題は自分のものです。
課題
- / の使用率を 40% 未満まで下げること
- /opt/yumesaku/data の中身は消さないこと
- 現役のログ /var/log/yumesaku/access.log は残すこと
- 消したファイルの絶対パスを /root/keshita.txt に1行ずつ書き残すこと
ヒント
前のヒントを開くと次が開きます。開かずに解けると未開封クリアです