UNIXサーバーのディスク領域がどこに分散しているかを評価しようとしています。私が実行しているディスクスペースの現在のステータスを確認するには、次のようにします。df -h
しかし、ディスク容量を使用して/
から実行しているものを評価しようとすると
du -skh * | sort -n
使用されている合計スペースは956GBですが、この部門で見ている累積使用スペースは730GB未満です。数字は足し合わないだけです。どうすればいいの?残りの約200GBはどこにありますか?
注-使用されているディスク領域のほとんどはMySQLによって使用されています。 1つの巨大なInnoDBテーブルといくつかの小さなテーブル。
df
は、割り当てられているスペースの量をスーパーブロックに要求し、du
は、表示されているすべてのファイルのサイズを計算します。これらの2つの異なるメトリックは、結果としてdf -h
およびdu -sxh /
互いに同意しません。
空き領域が心配な場合は、du
の方が正確です(ファイルシステムで使用可能なブロックが不足しそうにない場合)。
詳細な説明: http://linuxshellaccount.blogspot.com/2008/12/why-du-and-df-display-different-values.html
du
コマンドをroot
として実行していますか?そうでない場合は、権限の問題のため、/root
のようなディレクトリに入ることができません。したがって、これらのディレクトリ内のファイルのサイズを合計することはありません。これは、この数値が低い理由を説明している可能性があります。また、df
コマンドはファイルシステムの合計サイズ(iノードサイズ+ファイルサイズなど)を表示しますが、du
はファイルのサイズのみを表示すると思います。これにより、df
の数が大きくなります。