cd /
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/md2         25G   24G     0 100% /
但是根文件夹下显示所有文件夹(比如 usr 、var 、tmp 等文件夹)大小之和为 10G ,根本没用到 24G
删了一个 2G 的日志文件,有趣的来了,根文件夹所有文件夹大小之和变为 8G ,Avail 立马变为 2G ,然后 1.8G ,1.6G ,1.5G......不断缩小,直至为 0 。但根文件夹所有大小之和还是 8G
这是怎么造成的?怎么排查?
|      1angryPHP      2022-12-27 11:58:43 +08:00 du 命令 | 
|  |      3yinheli      2022-12-27 12:05:54 +08:00  1 lsof -nP | grep 'deleted' | 
|  |      4yinheli      2022-12-27 12:06:14 +08:00 看看有没有删掉的,但是句柄还在的文件 | 
|  |      5aaa5838769      2022-12-27 12:06:26 +08:00 用 du 命令 从根目录开始往下找到是那个目录占用最大。 | 
|  |      6chrawsl      2022-12-27 12:06:31 +08:00 du / -h -d1 -d1 代表递归深度 | 
|  |      747jm9ozp      2022-12-27 12:09:33 +08:00  2 ncdu | 
|  |      8kisshere OP | 
|  |      9idblife      2022-12-27 12:20:30 +08:00 yum install ncdu 不用谢 | 
|      10zzfra      2022-12-27 12:23:22 +08:00 我不负责地猜测一下,docker 导致的问题 | 
|  |      11AoEiuV020CN      2022-12-27 12:26:39 +08:00 发现 Avail 在变小就应该马上切 u 盘系统再考虑怎么排查, | 
|  |      12css3      2022-12-27 12:32:54 +08:00 看下回收站是否清空 | 
|  |      13nbweb      2022-12-27 12:35:40 +08:00 via Android 先把 md2 umount 了再看看容量。 | 
|      14troilus      2022-12-27 12:38:12 +08:00 大概率是 docker ,前几天同样问题 | 
|      16Dragonish3600      2022-12-27 12:54:25 +08:00 via iPhone reboot first | 
|  |      17xyjincan      2022-12-27 13:07:58 +08:00 删除没有关闭的文件,重启系统 or 进程就好了 建议使用 echo > xxx.log 删除日志文件 | 
|  |      18defunct9      2022-12-27 13:12:37 +08:00 lsof +L1 | 
|  |      19villivateur      2022-12-27 13:17:03 +08:00  8 @defunct9 这次居然没让开 ssh ? | 
|  |      20dd991      2022-12-27 13:17:06 +08:00 temp 文件夹 | 
|  |      21limbo0      2022-12-27 13:30:07 +08:00 du -sh -- *  | sort -rh | 
|      22Jirajine      2022-12-27 13:35:22 +08:00 下个 gdu 看看 | 
|  |      23gamexg      2022-12-27 13:42:56 +08:00 linux 下正在打开的文件也可以删除,但是这个删除只是 ls 不显示,实际这个文件还是存在,并且占用空间。直到使用这个文件程序释放这个文件,文件才被真的删除,空间才会被释放。 所以最简单的办法,重启下再看空间占用。 | 
|  |      24labnotok      2022-12-27 13:45:12 +08:00 via Android ncdu -x | 
|  |      25McreeWu      2022-12-27 13:50:35 +08:00 一般是 deleted 文件导致的,如果找不到的话可以看看磁盘预留空间 | 
|  |      26wjx0912      2022-12-27 13:53:16 +08:00 github search: ncdu | 
|      27V2April      2022-12-27 13:58:40 +08:00 我遇到过一次这个,是 onlyoffice 的日志文件 | 
|  |      28stephenyin      2022-12-27 14:05:07 +08:00 找 /home/xxx 下大于 500M 的文件:find /home/xxx -size +500m -name -type f | 
|  |      29stephenyin      2022-12-27 14:05:41 +08:00 @stephenyin #28 find /home/xxx -size +500m -type f | 
|  |      30stephenyin      2022-12-27 14:07:14 +08:00 @stephenyin #29 🤣 find /home/xxx -size +500M -type f | 
|  |      31DingJZ      2022-12-27 14:29:49 +08:00 遇到过一次 Inodes 的问题,df -i 查看 Inodes 占用,如果是的话清 /tmp | 
|      32julyclyde      2022-12-27 15:01:58 +08:00 这么经典的故障 丢失的空间可能都是类似于你“删除了一个日志”这类操作导致的 | 
|  |      33pingpp00      2022-12-27 15:24:04 +08:00 在根目录下执行  du -shx *  ,然后依次排查 | 
|  |      34QKgf555H87Fp0cth      2022-12-27 15:43:43 +08:00 sudo du -hsx * | sort -rh | 
|      35gam2046      2022-12-27 15:46:51 +08:00 是某个应用占用了个大文件,但是你已经通过 rm 把这个文件删掉,同时程序并未释放此文件的句柄,所以会造成你这种情况。因为句柄被占用,文件在内核中并未真正释放。 如果记得是哪个程序占用的大文件,重启这个程序即可。 如果不记得是哪个程序,重启系统即可。 | 
|  |      36JohnBull      2022-12-27 15:58:11 +08:00 肯定是有个超大的匿名文件 | 
|  |      37zooo      2022-12-27 16:09:55 +08:00 ncdu 确实好用些 | 
|      38lelandsu      2022-12-27 20:50:48 +08:00 via iPhone ncdu -x / 还找不到问题再来讨论 | 
|      39xwayway      2022-12-28 11:14:55 +08:00 楼上各位大哥说得都很在理,我就想蹲一个结果 | 
|  |      41ninvfeng PRO 1. 执行 du -sh / 看看哪个文件夹最大 2. 然后进最大的文件夹执行 du -sh ./* 重复执行第二步就能找到最大的文件在哪 如果删除后空间没释放就重启一下对应的程序 | 
|      42julyclyde      2022-12-29 09:07:58 +08:00 @ninvfeng2020 你这个和 OP 错的一样啊 | 
|  |      43zhuanggu      2022-12-29 12:00:54 +08:00 不是文件夹大啊,而是根目录下有隐藏文件。ls -a |