公司的测试服务器磁盘空间空余很小,日志很多,也很大,做个日志清空,可诡异的是: 删除了后,空间还是占用很大。如图
![fffc1c18d2ddbb021373a48cae5362d5.png](https://img-blog.csdnimg.cn/img_convert/fffc1c18d2ddbb021373a48cae5362d5.png)
用du 根目录下,发现这些文件加一块也达不到占用的空间大小。如图, 才32G, 比上图的df查看的54G小太多了. 我的 22G的空间去哪里了?
![317574dedbbac53a2c53ba01353113fe.png](https://img-blog.csdnimg.cn/img_convert/317574dedbbac53a2c53ba01353113fe.png)
/data目录下很干净,没有隐藏的什么文件,那么丢失的文件去了哪, 这个时候lsof命令上场了.
![8c8833d18dacb2db6d9754e75d3546b7.png](https://img-blog.csdnimg.cn/img_convert/8c8833d18dacb2db6d9754e75d3546b7.png)
lsof |grep delete
看到一个进程为8049的程序占用了2个文件, 查明了这个进程的用途后, 发现是历史遗留未清除的进程,
kill 8049
![e8fd181d845179068714018a4934dafe.png](https://img-blog.csdnimg.cn/img_convert/e8fd181d845179068714018a4934dafe.png)
22G的可用空间回来了, 从原来的2.2G,变成了25G ,这下我就放心了.
说明: linux文件被删除后,文件会从文件系统的目录结构上解除链接(unlink). 如果文件正在被一个进程使用,那么进程将仍然可以读取该文件,磁盘空间也一直被占用。
虽然文件状态标记为deleted,表示已经被删除,其实该文件并没有从磁盘中删除,类似windows下的回收站状态。
使用du命令不统计删除状态的文件,和df命令(查看使用空间)不一样.