lsof 命令用法:查看已删除空间却没有释放的进程
查看已经删除的文件,空间有没有释放,没有的话kill掉pid
lsof -n |grep deleted
lsof简介lsof(list open files)是一个列出当前系统打开文件的工具。
问题描述:
服务报警根分区使用率超过99%,上来查看发现99%使用率;
但是/分区下面的目录,每个查询加起来也不到7G空间,多出来的23G不知道在哪里?
find查询也没有找到大文件;
分析原因:
可能是系统进程占用的空间没有释放掉,导致的;
通过命令查看发现,大量的 auditd 、initial-s、cupsd、tuned、httpd、rsyslogd、easyAgent、collector、easy_coll 进程,都是处于deleted状态,文件大小刚好是23G,正好是多出来的空间,找到问题所在;
解决办法:
找到对应的进程号,kill掉即可;
lsof | grep deleted |awk '{print$2}' >> /tmp/pid-del.txt
while read line; do echo $line; kill -9 $line; done</tmp/pid-del.txt
查看空间已经恢复: