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

Max*_*mov 25 server disk-usage

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

Usage of /:   95.5% of 118.12GB
Run Code Online (Sandbox Code Playgroud)

我尝试查找大文件夹和文件,运行 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
Run Code Online (Sandbox Code Playgroud)

根据ncdu我使用 about 10 GiBof 128 GiB- 它是 about 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
Run Code Online (Sandbox Code Playgroud)

更新

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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

Mat*_* G. 15

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

du -sch .[!.]* * |sort -h
Run Code Online (Sandbox Code Playgroud)

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

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


小智 10

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

这将显示 pid 和文件描述符。我在服务器上遇到了这个确切的问题,除了ncdu磁盘填满之外什么都没有。事实证明,这是一个夜间进程,它将文件移动到已安装的 samba 共享,并且有时似乎没有正确关闭文件句柄。

如果您发现已删除的文件并想要清理它们,如果可以接受,重新启动可能是最简单的。或者您可以尝试终止该进程。或者,如果您确定它们没有被使用,您可以手动将它们清零,如下所示:
> /proc/14487/fd/12


Bal*_*ldy 5

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

ncdu 不会列出这些,因为它们对用户不可见。即使在 sudo 下运行 ncdu 也没有帮助。

此命令会清除所有现有的 docker 映像...

docker rmi $(docker images -a -q)

  • 最近我们发现 `docker system prune -a -f` 更加彻底 (3认同)