単一の8GBドライブにUbuntu 20.04サーバーがインストールされています。デフォルトのインストールでは、いくつかの「スナップ」もインストールされています。そのため、df
コマンドによって報告される「squashfs」ファイルシステムがいくつかあります。
# df -mT
Filesystem Type 1M-blocks Used Available Use% Mounted on
/dev/root ext4 7877 1837 6025 24% /
devtmpfs devtmpfs 465 0 465 0% /dev
tmpfs tmpfs 477 0 477 0% /dev/shm
tmpfs tmpfs 96 1 95 1% /run
tmpfs tmpfs 5 0 5 0% /run/lock
tmpfs tmpfs 477 0 477 0% /sys/fs/cgroup
/dev/loop0 squashfs 18 18 0 100% /snap/Amazon-ssm-agent/1566
/dev/loop1 squashfs 94 94 0 100% /snap/core/9066
/dev/loop2 squashfs 55 55 0 100% /snap/core18/1705
/dev/loop3 squashfs 69 69 0 100% /snap/lxd/14804
/dev/loop4 squashfs 70 70 0 100% /snap/lxd/14890
/dev/loop5 squashfs 55 55 0 100% /snap/core18/1754
tmpfs tmpfs 96 0 96 0% /run/user/1000
ご覧のとおり、(唯一の)ディスクに保存されているデータは1837MBしかありません。
現在、次のコマンドを使用して、ルート(/
)の下にある各ディレクトリのディスク使用量のリストを試しています。
# du -smc /* 2>/dev/null
0 /bin
48 /boot
0 /dev
8 /etc
1 /home
0 /lib
0 /lib32
0 /lib64
0 /libx32
1 /lost+found
1 /media
1 /mnt
1 /opt
0 /proc
1 /root
1 /run
0 /sbin
1116 /snap
1 /srv
0 /sys
1 /tmp
1166 /usr
601 /var
2938 total
出力には、/snap
ディレクトリによって使用されている大量のディスク領域が表示されますが、これはもちろん正しくありません。
「実際のディスク」ファイルシステムにあるonlyにあるファイルのサイズをカウントする正しい方法は何ですか?オプション-x
をdu
に追加しても、快適に感じることはありません。将来的には、たとえば/home
の下に別の「実際のディスク」ファイルシステムがマウントされる可能性があるためですdo wantdu
の出力でカウントされること。
df
とは異なり、私が知る限り、du
は特定のファイルシステムタイプをスキップする--exclude-type
を提供していません。ただし、globパターンで特定の最上位ディレクトリを除外することもできます。
du -smc --exclude=/snap /* 2>/dev/null
または(エフェメラルファイルシステムも除外するため)、シェルがブレース展開をサポートしていると仮定します。
du -smc --exclude=/{proc,run,sys,snap} /* 2>/dev/null
du
の引数を正しく使用する必要があります。何かのようなもの:
du --one-file-system -smc /* --exclude=/snap 2> /dev/null
参考としてman du
ローカルまたは オンライン 。