
NFS経由でマウントされたリモートファイルシステムを持つSolaris 10サーバーがあります。リモートシステムはNetAppだと思いますが、わかりません。
実行してみるとdf -h <mountpoint>
サイズは12T、使用は10T、容量は87%が出ます。
マウントポイントに変更して実行すると、ls -A |xargs du -s
約8MBのスペースが確保されます。私はduが再帰的に降りて、すべてのファイルサイズを合計すると予想しましたが、ここではそうではありません。
フェンスとして私は走った
find <mountpoint> -ls | awk '{total=total+$7}END{print total}'
答えは13006791645です。 1024^3(1073741824)で割ると約12.1TBになります。
だからfind -ls
それはdf
やや一貫性があるようです。なぜそんなにひどく失敗したのですか?
PS:このコマンドはls -A
隠しスナップショットディレクトリもインポートしますが、findは何も見つかりません(「ループ検出」を除く)。
答え1
du -s
512バイトブロックとして報告されます。人間が読めるデータは報告されないため、df -h
比較はできません。du
2つの値を比較するには、512バイト単位で報告またはdu -sh <mountpoint>
使用/usr/xpg4/bin/df -P
します。df
によるとman du
:
複数のリンクを持つファイルには、1つの項目のみが計算され作成されます。レポートで選択したカタログ項目が指定されていません。デフォルトでは、ファイルサイズは512バイト単位で記録され、次の512バイト単位に丸められます。
/usr/xpg4/bin/df -P
512バイトのレポートを入手してくださいdf
。
bash-3.2$ /usr/xpg4/bin/df -P /var
Filesystem 512-blocks Used Available Capacity Mounted on
rpool/ROOT/s10/var
1147797504 66061270 954397119 7% /var
そしてdu -s
:
bash-3.2$ du -s /var
65976060 /var
または比較:
bash-3.2$ df -h /var
Filesystem size used avail capacity Mounted on
rpool/ROOT/s10x_u11wos_24a/var
547G 32G 455G 7% /var
そして:
bash-3.2$ du -hs /var
31G /var