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

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 

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

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

我能够找到隐藏的文件,比如他们尚未删除的用户垃圾箱内部。

相信我最初找到这个答案的地方。

以下命令将显示/ home目录的磁盘利用率,其中–max-depth = 1

 user@linux:~$ sudo du -h -d 1 / 

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

那将显示pid和文件描述符。 我在服务器上遇到了这个确切的问题,在ncdu没有任何东西,但磁盘已经填满了。 事实certificate,它是一个夜间进程,将文件移动到已安装的samba共享,偶尔也没有正确关闭文件句柄。

如果您发现已删除的文件并想要清理它们,那么重新启动可能是最容易的,如果这是可以接受的。 或者你可以尝试杀死这个过程。 或者如果您确定它们没有被使用,您可以手动将它们归零,如下所示:
> /proc/14487/fd/12

请务必检查磁盘安装。 我在这里看到的解决方案都没有一个可以识别被放置在其上的文件夹占用的空间。

我们有同样的问题,结果是docker图像,存储在var / lib / docker下

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

此命令清除所有现有的docker镜像……

docker rmi $(docker images -a -q)