前几天我们的 Samba 服务器(Ubuntu 8.04 LTS)共享已满,但是当我查看它时,我没有发现任何共享上有太多内容。
我们有 5 个群组共享,每个用户都有一个个人共享。
一个用户有 22 GB 的东西。其他几个人有 10-20 MB 的东西,其他人的东西都是空的。
因此可能总共有 26 GB。
我昨天删除了几个文件,释放了大约 250 MB 的空间。今天我检查时,它又完全满了,我删除了一些旧文件,释放了大约 170 MB 的东西,但我可以看到它在可用空间中慢慢减少。
我一直在跑df -h
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 241690180 229340500 169200 100% /
varrun 257632 260 257372 1% /var/run
varlock 257632 0 257632 0% /var/lock
udev 257632 72 257560 1% /dev
devshm 257632 52 257580 1% /dev/shm
lrm 257632 40000 217632 16% /lib/modules/2.6.24-28-generic
我该怎么做才能找出占用了我这么多硬盘空间的东西?(我对 Unix 还不太熟悉,所以如果没有很好地解释清楚,我深表歉意。)
运行后sudo du -sch *
我得到以下内容。
root@MON-PDC:/# sudo du -sch *
5.2M bin
106M boot
0 cdrom
136K dev
16M etc
du: cannot access `home/administrator/.gvfs': Permission denied
216G home
4.0K initrd
0 initrd.img
0 initrd.img.old
767M lib
16K lost+found
12K media
4.0K mnt
4.0K opt
du: cannot access `proc/7311/task/7311/fd/3': No such file or directory
du: cannot access `proc/7311/task/7311/fdinfo/3': No such file or directory
du: cannot access `proc/7311/fd/3': No such file or directory
du: cannot access `proc/7311/fdinfo/3': No such file or directory
0 proc
436K root
6.8M sbin
4.0K srv
0 sys
100K tmp
2.0G usr
492M var
0 vmlinuz
0 vmlinuz.old
219G total
我注意到 Home 占用了 216 GB。
因此我检查了主目录,发现有一个用户显示有 209 GB 的数据。
但是当我du -sch *
从他的目录下运行命令时我只得到了 23 GB 的数据。
我错过了什么?
答案1
您可以重复使用该du
命令来找出已填满的目录。
cd /
du -sch *
然后cd
到可疑目录再做一次du -sch *
不断重复,直到找到罪魁祸首。
答案2
尝试
sudo du -h /home
您可以通过附加选项来限制显示目录的深度,--max-depth=n
其中 n 是所需的深度。
您尝试的命令使用 * 来选择要分析的文件。以点 (.) 开头的文件不会被选中。如果您调用du
目录,它将递归到全部子目录,甚至是隐藏的子目录(带点)。
答案3
.recycler
事实证明每个 Samba 用户目录中都有一个文件夹。
我没有看到它们,ls
但我可以看到它们ls -a
。
答案4
如果你想以直观的方式查看当前所有事物的大小,你可以尝试文件灯,这是一个免费的磁盘空间分析器,它具有非常流畅的视觉方式来显示数据并深入挖掘数据。