プロが教えるわが家の防犯対策術!

Debian lennyでディスク容量を圧迫して困っています。

OSは
Debian GNU/Linux 5.0.0
になります。

webアプリが動作しています。
logなのかわかりませんが、ここ2週間ほどで、ディスク容量が足らなくなってしまっています。(約2週間前にも同様の事例が起こり、とりあえずバックアップしてあったファイルを数GB削除し使用率を80%まで下げました。)

何が原因で容量を使ってしまっているのか、
調査方法を教えていただけると助かります。

現在の使用率は以下です。

xxxxx$ df -la
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda1 7850996 7208256 243928 97% /
tmpfs 193124 0 193124 0% /lib/init/rw
proc 0 0 0 - /proc
sysfs 0 0 0 - /sys
udev 10240 80 10160 1% /dev
tmpfs 193124 0 193124 0% /dev/shm
devpts 0 0 0 - /dev/pts

素人なので稚拙な質問で申し訳ありません。
よろしくお願い致します。

A 回答 (2件)

dfではファイルシステム単位でしか見ることができません。


ディレクトリ単位で見るにはduを使います。
    • good
    • 0
この回答へのお礼

duでディレクトリを確認し、logのせいだということがわかりました!
ありがとうございました!

お礼日時:2010/06/11 12:24

そういうことが起きやすいのは/varディレクトリー下ですね。



du -h --max-depth=1 /var
という書式で、/var下の容量の多いディレクトリーがわかります。
(要root権限だっけ)
とりあえず、不要のログを削除するのが一つの暫定手段でしょう。


こういった特定ディレクトリーの容量不足(パーティション計画ミス)の問題は
数十年前からあるものですから、当然ながらUNIX系OSでは効率的な対策が備わっています。

それが、mountによって、物理的に違うストレージを論理上のpathに割り当て
アプリケーションレベルの設定変更無しに、ストレージ追加ができる仕組みです。
(UNIXより新しいOS Windowsではこのストレージ抽象化が盛んではありません)


たとえば、10GBのルートパーティションなのに、/varが7GBも超えるような異常事態に
/パーティションを変更すること無く…つまり、OSの起動が可能のままに
10GBの新規パーティションを作り、/varにマウントしてしまえば
/varの浪費によるルートファイルシステムの容量不足を解消することができます。

これは顧客対応係を、業務拡大に伴い顧客対応課に昇格させるような運用です。


fdisk,mkfs,chown,chmod,mount,umountといったコマンドを理解する必要があります。
実際のHDD追加時には、cpやtarなどを適切に利用し
対象ディレクトリー内のファイル/ディレクトリーの権限設定を引き継ぐ必要があります。

クリティカルな状況では、サーバー停止を短時間に抑えるために
ディレクトリー下のフルコピーと、サーバー停止後の更新分コピーの併用が必要でしょう。

そのほか、/etc/fstabの編集の必要もありますし
場合によっては、vol_idでパーティションのUUIDを確認する必要も生じます。
(追加HDDコントローラーの認識順変異などへ対応するためです)


一般的には別途用意した追加HDDでこういった対応を行ないますが
緊急時の応急処理として、/homeパーティションなどの
既存パーティションの一部を切り分けて/varに転用することもできますし
(gpartdなどを使う必要があり、リスクはあります)
本当に困った時には、USBメモリーでどうにかなることもあります。
(ただ書き込みの遅いUSBメモリーはサーバー性能に大きく響く恐れがあります)

まぁ、次にサーバーを止められる日には、ちゃんと対応しないといけないでしょうが
USBメモリーでの応急処置なら、サーバーの停止時間はわずかなものです。

C:の拡大とアプリケーション環境の復旧などの一連の作業のために
専用のソフトを用意して、一日がかりの作業…という不便なOSに比べれば
合理的なストレージ管理と言えます。


もっとも、まず試してみるべきはapt-get cleanで
自動ダウンロードされたdebファイル群を削除するとかだと思います。
容量不足により、システムが正常起動できない際にも手早い。
    • good
    • 0
この回答へのお礼

duでディレクトリを確認し、logのせいだということがわかりました!
ありがとうございました!

お礼日時:2010/06/11 12:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!