我有一台装有 Ubuntu 20.04 的服务器,问题是disk/dev/vda1
分区已满。但是,我几乎没有东西可安装。
如何知道哪个文件或目录占用了所有空间?
ubuntu@pv-hdh87 ~ $ df -h
Filesystem Size Used Avail Use% Mounted on
udev 2.9G 0 2.9G 0% /dev
tmpfs 595M 1.1M 594M 1% /run
/dev/vda1 20G 18G 1.3G 94% /
tmpfs 3.0G 0 3.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.0G 0 3.0G 0% /sys/fs/cgroup
/dev/vda15 105M 9.1M 96M 9% /boot/efi
/dev/loop0 72M 72M 0 100% /snap/lxd/16099
/dev/loop1 55M 55M 0 100% /snap/core18/1880
/dev/vdb 98G 4.7G 89G 6% /home
tmpfs 595M 0 595M 0% /run/user/1000
tmpfs 595M 0 595M 0% /run/user/114
/dev/loop3 30M 30M 0 100% /snap/snapd/8790
/dev/loop4 56M 56M 0 100% /snap/core18/1885
/dev/loop5 71M 71M 0 100% /snap/lxd/16922
/dev/loop6 31M 31M 0 100% /snap/snapd/9279
答案1
du
可以使用 coreutils 中的命令来实现这一点。可以像这样使用:
du -h -d 1 /
12G /usr
16K /lost+found
964K /run
324G /home
0 /dev
77M /boot
348K /tmp
326M /root
0 /sys
2.5G /opt
16G /var
12K /srv
20K /media
4.0K /mnt
0 /proc
9.8M /etc
354G /
返回-h
人类可读的输出并-d 1
定义要汇总的级别。
根据磁盘的大小,命令可能需要一些时间才能完成。在/var
检查整个磁盘之前,先检查潜在的大型目录可能是有意义的,例如:
du -h -d 1 /var
答案2
我认为您可以尝试这个来获取 10 个最大的文件:
find / -type f | xargs ls -la | awk '{print $5,$9}' | sort -rn | head -n 10