5.1 调查目录磁盘使用情况
有时你可能需要找出哪个目录消耗了多少磁盘空间,特别是当你使用 df -h 后意识到可用磁盘空间不足时。du:du 命令汇总文件集的磁盘使用情况,对目录递归处理。- -s, --summarize - 只显示每个参数的总计
- -h, --human-readable - 以人类可读的格式打印大小(例如 1K 234M 2G)
8.0K Desktop4.0K Documents4.0K Downloads4.0K Music4.0K Pictures4.0K Public4.0K Templates4.0K Videos
4.0K .bash_history4.0K .bash_logout4.0K .bash_profile4.0K .bashrc62M .cache572K .config4.0K .gtkrc-2.0127M .local144K .var4.0K .vboxclient-hostversion-tty1-control.pid4.0K .vboxclient-vmsvga-session-tty1-control.pid4.0K .vboxclient-vmsvga-session-tty1-service.pid4.0K .vboxclient-wayland-tty1-control.pid4.0K .vboxclient-wayland-tty1-service.pid
第三,你可以通过添加 -c 选项在输出中添加总计:4.0K .bash_history4.0K .bash_logout4.0K .bash_profile4.0K .bashrc62M .cache572K .config4.0K .gtkrc-2.0127M .local144K .var4.0K .vboxclient-hostversion-tty1-control.pid4.0K .vboxclient-vmsvga-session-tty1-control.pid4.0K .vboxclient-vmsvga-session-tty1-service.pid4.0K .vboxclient-wayland-tty1-control.pid4.0K .vboxclient-wayland-tty1-service.pid189M total
最重要的是,在根目录上正确使用 du 命令是一个救命的操作,可以找出哪个应用程序/服务或用户正在疯狂消耗你的磁盘空间。例如,在 Web 和邮件服务器的磁盘空间可用性极低的情况下,原因可能是对你的邮件服务的垃圾邮件攻击,你可以仅通过使用 du 来诊断它。0 /bin25M /boot0 /dev8.9M /etc189M /home0 /lib0 /lib6416K /lost+found4.0K /mnt4.0K /opt0 /proc1.4M /root1.2M /run0 /sbin12K /srv0 /sys4.0K /tmp8.8G /usr3.1G /var12G total
最后,当你为目录添加阈值大小值以忽略小目录时,最佳方法就形成了。此命令将只显示大小超过 1GB 的文件夹,这些文件夹位于根目录下,一直到文件系统整个目录树的最远分支:sudo du --threshold=1G -ch /.[!.]* /*
3.8G /usr/lib3.7G /usr/share8.8G /usr2.9G /var/cache/pacman/pkg2.9G /var/cache/pacman2.9G /var/cache3.1G /var12G total
5.2 检查磁盘空间
想要检查服务器/计算机上各种分区/驱动器的状态以查看它们有多满是很常见的。以下命令是你需要运行的:[archuser@archlinux ~]$ df-hFilesystem Size Used Avail Use% Mounted on/dev/sda2 32G 12G 18G 40% //dev/sda1 1022M 25M 998M 3% /boot/dev/sda3 31G 209M 29G 1% /home
在这个基本示例中,我们可以看到 / 分区只使用了 9%。对于一个更复杂的示例,还包括使用 df 查看各种挂载点,见下面:[archuser@archlinux ~]$ df-hFilesystem Size Used Avail Use% Mounted ondev 1.9G 01.9G 0% /devrun 1.9G 1.1M 1.9G 1% /runefivarfs 256K 44K 208K 18% /sys/firmware/efi/efivars/dev/sda2 32G 12G 18G 40% /tmpfs 1.9G 01.9G 0% /dev/shmnone 1.0M 01.0M 0% /run/credentials/systemd-journald.servicenone 1.0M 01.0M 0% /run/credentials/systemd-resolved.servicenone 1.0M 01.0M 0% /run/credentials/systemd-networkd.servicetmpfs 1.9G 4.0K 1.9G 1% /tmp/dev/sda1 1022M 25M 998M 3% /boot/dev/sda3 31G 209M 29G 1% /hometmpfs 390M 88K 389M 1% /run/user/1000
在这个示例中,我们有一个使用率 40% 的 / 分区,以及一个仅使用 1% 的额外的 /home 分区。