目录

磁盘文件删除空间不释放

目录

运维过程中,会发现有时候操作系统df查看的磁盘使用量和du统计出的磁盘使用量不符,有时差距甚至达到数十GB,这多数是因为文件删除但是进程没有释放导致。

执行下列命令查看哪些文件已被删除但是进程还未释放。

[root@localhost ~]# lsof |grep delete

/images/%E7%A3%81%E7%9B%98%E6%96%87%E4%BB%B6%E5%88%A0%E9%99%A4%E7%A9%BA%E9%97%B4%E4%B8%8D%E9%87%8A%E6%94%BE/clip_image001.png

从左至右每一列意思如下

COMMAND 进程的名称
PID 进程标识符
USER 进程所有者
FD 文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等
TYPE 文件类型,如DIR、REG等
DEVICE 指定磁盘的名称
SIZE 文件的大小
NODE 索引节点(文件在磁盘上的标识)
NAME 打开文件的确切名称

其中的第7列64096代表该文件大小,第二列的1723代表进程号,查出未释放的进程后执行kill命令讲该进程结束后,磁盘空间即可释放。

[root@localhost ~]# kill -9 1723

**此处注意:一般在运维过程中,经常会遇到nohup文件删除后空间未释放,可用上述方法解决,但是对于过滤出的二进制文件,尽量不要采取以上方法。