df -k
/dev/sda6 25396228 21249088 2836240 89% /export
21G used
対
du -sh /export
3.4G /export
重要ではないファイルをすべて削除したので3.4Gは正しいですが、dfによって報告された空き領域は、そこにあるはずの実際の空き領域と一致していません。
これはなぜですか?
df -k
/dev/sda6 25396228 21249088 2836240 89% /export
21G used
対
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を測定します。カウントを変更するファイルシステムの境界を越えることに関するいくつかのフラグがあります。シンボリックリンクの処理も結果に影響を与える可能性があります。