私は問題があります。私はいつもディスク容量を使い果たしています。どのファイルがすべてのスペースを消費するのか正確にはわかりません。小さなファイルがたくさんあるようですので、du
コマンドで見つけるのは難しいです。空き領域(メール、ログ、古いアーカイブ、rpm)を確保するために何かを見つけるたびに、しばらくするとディスクが再びいっぱいになります。システムパーティション(/)からスペースが盗まれました。 df
コマンドの結果:
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 4061540 3848404 3492 100% /
/dev/sda3 4061572 2441348 1410576 64% /home
tmpfs 517636 0 517636 0% /dev/shm
/dev/sdb1 10317828 1894904 7898808 20% /var/lib/mysql
この状況であなたは何をお勧めしますか?
過度または予期しないスペース消費に遭遇した場合のケースのリストも列挙できると便利です。問題の解決に役立つ可能性があります
OS:CentOS5。
これが私の標準的な「スペースを食べているものを見つける」体制です。
du -hx --max-depth=1 /
-スペースを食べているものを探します。スペースホッグが見つかるまで、最大のサブディレクトリ(たとえば、du -hx --max-depth=1 /var
)を調べます。ログ(/var/log
内)は一般的な原因(logrotateを使用して対処する必要があります)であり、yumが保持するのが好きな残骸(再パッケージ化されたRPM)も同様です。繰り返し違反している人を特定できる場合は、繰り返しクリーンアップするために行っているメンテナンス作業を自動化する方法を考えてください。lsof -n |grep deleted
-削除された大きなファイルを探します。可能であれば、どのプロセスがそれらを開いたままにしているのかを特定し、それを強制終了するか、ハンドルをリサイクルするように指示します(ログファイルの場合は、kill -HUP <pid>
がうまくいくことがよくあります)。/dev/sdb1
をVGに変換し、そこから割り当てるためのメンテナンスを検討してください。Wombleの答えへの1つの追加-大きなログファイルをたくさん取得している場合は、 logrotate (ほとんどのディストリビューションにデフォルトでインストールされています)を使用してサイズを小さくすることを検討してください。スペースの大部分を占める特定のログが1つある場合は、エラーが繰り返されていないかどうかも確認し、ログを生成するサービスの詳細レベルが高すぎないことを確認する必要があります。
例:/ homeをアンマウントし、そこに10GBのファイルを書き込み、/ homeを再度マウントします。スペースが消費され、df
は何も表示しません。マウントポイントはそのフォルダー内のファイルを非表示にします。
これを確認してください。これは、マウントエラーが発生したことがあり、いくつかのファイルがそこに配置されている場合に発生する可能性があります。
まだ行っていない場合は、/ varマウントポイントを別のパーティションに移動します。ファイルシステム/ varは、ルートFSがいっぱいになるのを防ぐために存在します。
まだ個別のパーティションでない場合は、/ tmpについても同じです。
ファイルを削除しても開いたままにするプロセスがあるかもしれません。スペースは、クローズ/プロセス終了まで再利用されません。 lsofコマンドを使用して、どのプロセスがどのファイルを開いているかを調べることができます。コマンドlsofが標準のCentosインストールに含まれていない可能性があるため、パッケージを追加して取得する必要がある場合があります。
Sudo du --all --one-file-system / | xdu -n