最近,我在系统开发过程中遇到了一个问题,就是磁盘空间被沾满
用df -lh命令查看

起初,我认为应该是log日志太多,所以,清理掉了我能想到的log日志的地方,清理后大概腾出了1G多的空间,勉强能用一段时间
但是,很快磁盘再次100%,于是我就想删除更多的log日志,于是我就想到用find语句,步骤如下:
- 使用root权限
cd /进入根目录 - 使用命令
find -type f -size +100M -name "*.log" |xargs ls -l来查询所有大小超过100M且以.log结尾的文件,并显示其大小
一顿操作下来,仅有几个不超过200M的文件,还是别的项目组的日志文件,不敢轻易删去;于是我改进了一下,
- 用命令
find -type f -size +100M -name "*.*" |xargs ls -l
查询所有超过100M的文件如下:

但,这几个文件之和也远远没有达到想象中的大小
实在每招,我们就看下是哪个文件夹占这么大的面积,
- 用命令
du -s -h ./*如下:

发现,所有文件夹大小总和才不到20G,而我们磁盘的大小又40多G,其他空间去哪了呢
于是我们想,会不会是又隐藏文件呢
- 于是用命令
du -sh .[!.]* * | sort -hr来查看所有跟目录下文件及文件夹大小,包括隐藏文件

也还是总共不到20G的空间占有
到底是什么情况呢???
这时,我们发现一种情况,就是每当我们清楚掉几十兆的空间后,没过多久,空间就又被占满了,网上查询相关的内容,有一种说法,是说文件被删除了,但是进程依然在读写被删除的文件,造成磁盘空间没有被释放
- 于是我用命令
**lsof -n | grep deleted**果然发现了很多进程占有被删除的文件

其中,有的进程占领的空间达20多G,所以情况都清楚了,但是这个进程是另外一个项目组的,我让他们将该服务停掉,然后, - 使用
kill -9 进程号来杀死该进程
最后,再看看系统磁盘情况df -lh

果然,空间清理出了24G!!!
磁盘空间谜团:日志清理、隐藏文件与进程占用的探究
博主在系统开发中遭遇磁盘空间反复被占满的问题,通过清理log、查找隐藏文件和分析进程占用,揭示了文件被进程持久占用的真相,最终解决策略包括删除不活跃进程和优化资源管理。
2669





