df -k
/dev/sda6 25396228 21249088 2836240 89% /export
21G used
versus
du -sh /export
3.4G /export
必須ではないファイルをすべて削除したので3.4Gは正しいですが、dfによって報告された空き領域は、そこにあるはずの実際の空き領域と一致していません。
なぜそうなのですか?
削除したファイルは、おそらくまだプロセスによって開かれています。小切手:
lsof -a +L1 /export
これは次の理由によると思います:
df
利用可能なブロックをチェックします(スーパーブロック)du
は、各ファイルのスペースを合計します。1つ以上のアプリケーションで/export
でファイルが開かれていますが、ファイル名自体は存在しません(つまり、削除されています)。
それらは2つの類似しているがわずかに異なるものを測定します。 dfはファイルシステムの容量を測定し、duはディレクトリツリーを測定します。たとえば、次の場合:
/dev/sda6 mounted on /exports
/dev/sda7 mounted on /exports/extra
/ exportsのdfは/ dev/sda6のみを測定し、/ exportsのduは/ dev/sda6と/ dev/sda7を測定します。カウントを変更するファイルシステムの境界を越えることに関するいくつかのフラグがあります。シンボリックリンクの処理も結果に影響を与える可能性があります。