磁盘文件删除空间不释放
目录
运维过程中,会发现有时候操作系统df查看的磁盘使用量和du统计出的磁盘使用量不符,有时差距甚至达到数十GB,这多数是因为文件删除但是进程没有释放导致。
执行下列命令查看哪些文件已被删除但是进程还未释放。
[root@localhost ~]# lsof |grep delete
从左至右每一列意思如下
COMMAND | 进程的名称 |
---|---|
PID | 进程标识符 |
USER | 进程所有者 |
FD | 文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 |
TYPE | 文件类型,如DIR、REG等 |
DEVICE | 指定磁盘的名称 |
SIZE | 文件的大小 |
NODE | 索引节点(文件在磁盘上的标识) |
NAME | 打开文件的确切名称 |
其中的第7列64096代表该文件大小,第二列的1723代表进程号,查出未释放的进程后执行kill命令讲该进程结束后,磁盘空间即可释放。
[root@localhost ~]# kill -9 1723
**此处注意:一般在运维过程中,经常会遇到nohup文件删除后空间未释放,可用上述方法解决,但是对于过滤出的二进制文件,尽量不要采取以上方法。