转自:http://www.linuxdiyf.com/viewarticle.php?id=67955
工作中有个脚本 定时登到服务器上去,df一下看看分区使用情况,如果有使用率超过80%的 就报警(email & sms),最近发现有台机器报了警,等上去看,处理了一下(直接rm文件),过段时间又报再上去看,用du来找哪个目录占的空间大的时候,发现被报的那个分区其实占用率并不高,但用df看还是超警戒线(80%)。
我知道肯定是有进程没有释放某些已经被删除了的文件
这种事情以前也碰到过,一般重起机器肯定会把这些进程占用的空间释放掉
但一定要重起机器才能解决问题吗? 当然不是。
只要停掉那些打开了已经被删除文件的进程就行了,于是
lsof | grep deleted
果然一下子就找到了,然后kill之,
for pid in `/usr/sbin/lsof | grep deleted | awk -F " " '{print $2;}'`
do
kill -15 $pid
done
再df看就正常了
教训:
不要随便删除正在被打开的文件。