私のサーバーには 130 GB のボリュームが接続されています。
空きディスク領域を確認するには、df -h -x tmpfs -x squashfs | grep -v /run/shared
次のコマンドを実行します。
Filesystem Size Used Avail Use% Mounted on
udev 965M 0 965M 0% /dev
/dev/xvda1 128G 111G 13G 90% /
ただし、ディスク使用量の詳細が必要な場合は、ncdu
ルート ディレクトリで実行すると、次のようになります。
. 55,7 GiB [######### ] /home
. 24,0 GiB [#### ] /var
. 2,4 GiB [ ] /usr
1,0 GiB [ ] swapfile
598,6 MiB [ ] /lib
63,0 MiB [ ] /boot
9,4 MiB [ ] /sbin
9,1 MiB [ ] /bin
. 8,1 MiB [ ] /etc
. 4,3 MiB [ ] /tmp
. 2,7 MiB [ ] /run
! 24,0 KiB [ ] /root
! 16,0 KiB [ ] /lost+found
4,0 KiB [ ] /lib64
e 4,0 KiB [ ] /opt
e 4,0 KiB [ ] /mnt
e 4,0 KiB [ ] /media
! 4,0 KiB [ ] /gandi
. 0,0 B [ ] /proc
. 0,0 B [ ] /sys
0,0 B [ ] /dev
@ 0,0 B [ ] initrd.img.old
@ 0,0 B [ ] initrd.img
@ 0,0 B [ ] vmlinuz.old
@ 0,0 B [ ] vmlinuz
e 0,0 B [ ] /srv
前のコマンドで返された空きディスク容量 (111 GB) と約 27 GB の差があります。
この違いはどこから来るのでしょうか?
ありがとう。
答え1
この質問はよく聞かれます。簡単に答えるとdu
、df
データを取得するにはさまざまな方法を使用するということです。
ファイル システムは、データを記録するためにファイル システム内にディスク ブロックを割り当てます。このデータはメタデータと呼ばれ、ほとんどのユーザー レベル プログラム (du など) には表示されません。メタデータの例としては、inode、ディスク マップ、間接ブロック、スーパーブロックなどがあります。
のデュcommand はファイルシステムのメタデータを認識しないユーザーレベルのプログラムですが、df はファイルシステムのディスク割り当てマップを参照し、ファイルシステムのメタデータを認識します。 dfは実際のファイルシステム統計情報を取得しますが、du は部分的な画像のみを表示します。