Linux系统下提示磁盘空间满,但实际占用却很小
因为公司放在测试服务器上的服务比较多,磁盘经常性会满。以前满过几次,因为时间比较赶,每次只是草率的删掉一点log或者临时文件,到今天早上又发生一起事故,依然是磁盘空间满,看了一下好像没什么东西可以删了,才静下心来慢慢研究解决。
系统:Ubuntu14.04 x64
磁盘名称:/data
磁盘空间:200G
错误描述:
今早发现磁盘空间满,服务数据写不进数据库中,使用du -h --max-depth=1命令查看大文件,发现文件只占100G,然而使用df -h 命令查看时,磁盘用了200G占用了百分之一百。其中100G的空间莫名其妙就没有了
解决方法:
用lsof检查后才发现原因是,有文件被删除,而进程还活着,因而造成还占用空间的现象。可以通过命令 lsof |grep deleted 来进行查看
把这些进程删掉就可以了,批量杀死进程命令
lsof |grep delete | grep -v grep | awk '{print $2}' | xargs kill -9
期间可能会等一段时间,等杀完后,重新 df -h 查看,磁盘空间多出来了87G
最后记得!!!!
把服务重启一下!!!因为杀掉进程的时候,某些文件进程是apache或者mysql的,所以会连带着把他们也一起删掉了,千万记得查看一下服务是否还在运行,如果服务不在了,要手动开一下!
————————————————
版权声明:本文为CSDN博主「Klein_yang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Klein_yang/article/details/80894182