可能的重复:
如何诊断和修复丢失的驱动器空间?
root@database:/# treesize -x 2>/dev/null
1.1 GB .
757.1 MB ./usr
232.0 MB ./lib
97.2 MB ./var
29.0 MB ./boot
6.3 MB ./sbin
5.5 MB ./etc
5.4 MB ./bin
80.0 KB ./home
68.0 KB ./root
32.0 KB ./tmp
16.0 KB ./lost+found
12.0 KB ./mnt
12.0 KB ./media
4.0 KB ./srv
4.0 KB ./selinux
4.0 KB ./opt
0.0 KB ./sys
0.0 KB ./proc
0.0 KB ./dev
root@database:/# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 9,2G 9,0G 0 100% /
root@database:~$ df -i /
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 610800 57516 553284 10% /
root@database:/# du -sh /* 2>/dev/null
5,4M /bin
29M /boot
0 /cdrom
144K /dev
5,5M /etc
84K /home
0 /initrd.img
0 /initrd.img.old
232M /lib
0 /lib64
16K /lost+found
12K /media
12K /mnt
69G /opt
0 /proc
104K /root
6,4M /sbin
4,0K /selinux
4,0K /srv
0 /sys
32K /tmp
758M /usr
98M /var
0 /vmlinuz
0 /vmlinuz.old
树大小的内容
#/bin/sh
du -k --max-depth=1 "$@" | sort -nr | awk '
BEGIN {
split("KB,MB,GB,TB", Units, ",");
}
{
u = 1;
while ($1 >= 1024) {
$1 = $1 / 1024;
u += 1
}
$1 = sprintf("%.1f %s", $1, Units[u]);
print $0;
}
'
从 Ubuntu 9 升级到 10 LTS 后几天后突然发生这种情况。
当我找不到占用空间的单个文件时,为什么 / 空间不足?我已经尝试过 gparted live 的 fsck 。我还启动到单用户模式并保存了 lsof 输出的副本。但由于机器已重新启动多次,我怀疑这是由于打开的文件造成的。
我在 /opt 上有 mysqld,它在 /var/log 中打开了一些 error.logs,我尝试关闭所有可以关闭的东西,vmware 工具、cron、syslog、mysql、atd、nrpe、snmpd 并再次检查树大小,但没有区别输出。
编辑:我想我的接受率将不得不进一步下降,因为看起来这是另一个可以回答的问题。
我的解决方案是安装一个新的VM,在新的VM中安装旧的VMDK,然后从旧的VMDK安装/opt。有趣的是,当我在 /mnt/root 上安装旧的 / 时,我发现 FS 仍然已满。
# df -h /mnt/root
Filsystem Storlek Anvnt Tillg Anv% Monterat på
/dev/sdb1 9,2G 9,2G 0 100% /mnt/root
答案1
重新启动后,大量利用率是否持续存在?是否有可能有一个打开的文件描述符写入了一个不再存在的文件?我见过这导致文件系统认为它们是 100%,但实际上并非如此。在这种情况下,重新启动即可修复该问题。
另外,我没有看到您的treesize
脚本默认会考虑隐藏 (.) 文件。
尝试像这样的命令
find . -x -type f -exec du -k {} \; | awk -F' ' '{sum+=$1} {print $1"\t"$2} END{print "--------\n"sum"\tTotal K-Bytes"}'
这将为您的脚本提供类似的输出,但会在底部包含一个总行,您可以使用它来与 df 关于文件系统的内容进行比较。