![磁盘已满,但找不到大文件或文件夹](https://linux22.com/image/971732/%E7%A3%81%E7%9B%98%E5%B7%B2%E6%BB%A1%EF%BC%8C%E4%BD%86%E6%89%BE%E4%B8%8D%E5%88%B0%E5%A4%A7%E6%96%87%E4%BB%B6%E6%88%96%E6%96%87%E4%BB%B6%E5%A4%B9.png)
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 GiB
-128 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
答案1
答案2
检查已删除但仍然由进程保持打开状态的文件:
sudo lsof | grep deleted | less
这将显示 pid 和文件描述符。我在服务器上遇到了同样的问题,除了ncdu
磁盘填满之外什么都没有。原来是一个夜间进程,将文件移动到已安装的 samba 共享,并且偶尔没有正确关闭文件句柄,看起来是这样。
如果您发现已删除的文件并想清理它们,最简单的方法可能是重新启动(如果可以接受)。或者您可以尝试终止该进程。或者如果您确定它们没有被使用,您可以手动清空,如下所示:
> /proc/14487/fd/12
答案3
我们也遇到了同样的问题,原来是 docker 镜像,存储在 var/lib/docker 下
ncdu 没有列出这些,因为它们对用户不可见。即使在 sudo 下运行 ncdu 也无济于事。
此命令将清除所有现有的 docker 镜像……
docker rmi $(docker images -a -q)
答案4
以下命令将显示 /home 目录的磁盘利用率--max-depth=1
:
sudo du -h -d 1 /
从手动的:
-d
,--max-depth=N
仅当目录(或文件,使用 --all)在命令行参数以下的级别为 N 或更少时才打印该目录(或文件,使用 --all)的总数;--max-depth=0
与 相同--summarize
。