磁盘已满,但找不到大文件或文件夹


20

Ubuntu服务器向我显示我使用了所有磁盘:

Usage of /:   95.5% of 118.12GB

我尝试查找大文件夹和文件,运行ncdu:

ncdu 1.8 ~ Use the arrow keys to navigate, press ? for help                                                                                                                                                 
--- / ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    5.5GiB [##########] /root                                                                                                                                                                               
    2.3GiB [####      ] /var
  628.6MiB [#         ] /usr
  209.9MiB [          ] /lib
   28.2MiB [          ] /boot
    8.6MiB [          ] /bin
    7.7MiB [          ] /sbin
    6.6MiB [          ] /etc
  208.0KiB [          ] /run
  112.0KiB [          ] /tmp
   48.0KiB [          ] /opt
e  16.0KiB [          ] /lost+found
    8.0KiB [          ] /dev
    8.0KiB [          ] /media
    4.0KiB [          ] /lib64
e   4.0KiB [          ] /srv
e   4.0KiB [          ] /selinux
e   4.0KiB [          ] /mnt
e   4.0KiB [          ] /home
    0.0  B [          ] /proc
    0.0  B [          ] /sys
@   0.0  B [          ]  initrd.img
@   0.0  B [          ]  vmlinuz

根据ncdu我的使用,大约10 GiB128 GiB- 10 %。矛盾。

如何清洁我的电脑ubutntu server而无需重新启动?

我以为这ncdu是谎言,并使用另一个应用程序来查找大文件和文件夹。它们都显示与相同的结果ncdu

并且df -h命令显示磁盘已满。

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda       119G  113G     0 100% /
udev            2.0G  8.0K  2.0G   1% /dev
tmpfs           788M  212K  788M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm

更新资料

sudo du -sch /* 结果:

/# sudo du -sch /*
8.7M    /bin
29M /boot
8.0K    /dev
6.6M    /etc
4.0K    /home
0   /initrd.img
210M    /lib
4.0K    /lib64
16K /lost+found
8.0K    /media
4.0K    /mnt
48K /opt
du: cannot access `/proc/4470/task/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/task/4470/fdinfo/4': No such file or directory
du: cannot access `/proc/4470/fd/4': No such file or directory
du: cannot access `/proc/4470/fdinfo/4': No such file or directory
0   /proc
5.0G    /root
212K    /run
7.8M    /sbin
4.0K    /selinux
4.0K    /srv
0   /sys
112K    /tmp
629M    /usr
2.3G    /var
0   /vmlinuz
8.1G    total

8.1G 总和往常一样。但是我看到cannot access行,也许是因为它们造成的问题。

然后我检查了中最大的文件夹/。是/root

/# sudo du -sch /root/*
96K /root/Downloads
2.5G    /root/Dropbox
36K /root/nohup.out
4.0K    /root/npm-debug.log
4.0K    /root/readonly
980K    /root/redis-2.6.16.tar.gz
228M    /root/tmp
2.7G    total

只是想一想,可以检查/ var / log /的内容,以查看是否有任何日志呈指数增长。
莫多克2014年

/ var / log约为2 GiB。没关系
Maxim Yefremov 2014年

1
尝试du -sch /*查看哪些根目录使用最多的空间,然后从那里降到使用最多空间的位置。
DopeGhoti 2014年

我尝试过@DopeGhoti,但看到的内容与8.1 GiB完整相同(添加了此内容以进行更新)。无法弄清楚剩下的地方100 GiB
Maxim Yefremov 2014年

2
我知道您不想这么做,但是要硬着头皮重新启动。
douggro 2014年

Answers:


13

我在实验室机器上遇到了同样的问题,并使用了此命令

du -sch .[!.]* * |sort -h

我能够找到用户尚未删除的隐藏文件,例如用户垃圾箱中的文件。

感谢了这里,我最初发现这个答案。


惊人的解决方案!
AivanF。

5

检查进程仍保持打开状态的已删除文件:
sudo lsof | grep deleted | less

这将显示pid和文件描述符。我在服务器上有这个确切的问题,除了ncdu磁盘已满之外什么也没有。看来,这是一个每晚执行的过程,它似乎将文件移动到已安装的samba共享中,偶尔并没有正确关闭文件句柄。

如果您发现已删除的文件并希望清理它们,那么如果可以接受的话,重新启动可能是最容易的。或者,您可以尝试终止该过程。或者,如果您确定没有使用它们,则可以使用以下方法将它们手动归零:
> /proc/14487/fd/12


这是我的问题。Tomcat持有80GB的已删除文件。重新启动就足以修复它。
AFP_555

如果“重新启动”命令还不够,如何删除它们?
闪耀


2

确保检查磁盘安装。我在这里看到的所有解决方案都无法识别文件夹所在的文件夹占用的空间。


有任何建议吗?我认为这可能是我的问题
Eliethesaiyan


基本上,使用来检查您现有的安装mount,然后为每个上面放置了安装的目录添加第二个安装。然后,您可以使用常规磁盘工具(例如du在新创建的安装架上)查看是否是罪魁祸首。
Rich Remer

1

我们遇到了同样的问题,结果是存储在var / lib / docker下的docker镜像

ncdu未列出这些内容,因为它们对用户不可见。即使在sudo下运行ncdu也无济于事。

该命令将清除所有现有的Docker映像...

docker rmi $(docker images -a -q)


这里同样的问题。实际上,甚至docker system prune没有找到所有东西。该命令(早于docker system prune)可以解决问题。
jscharf

1
最近我们发现这docker system prune -a -f要彻底得多
Baldy

0

您可以运行以下命令来查找前10个最大的文件:

find / -type f -printf '%s %p\n' 2>&1 
     | grep -v 'Permission denied' 
     | sort -nr 
     | head -10
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.