今天一个同事跟我说磁盘爆了,df -h 查看磁盘使用率显示确实是100%,但是我du -sh *查看磁盘使用情况时,又发现磁盘情况根本不可能占满。磁盘是40G,使用顶多在10G,那还有的30多G去哪了呢。
因为之前出现过磁盘占满的情况,那是因为安全方面的日志打了30多G。。。然后用crontab写了个定时清理log的定时器。想着可能是 部分进程清理日志的时候有问题,实际没有释放,通常重启应用就可以。但是这回出现的问题是有很多应用,不能重启,就只能使用其他办法了。
解决办法:
既然认为是delete清理Log导致的问题,就查查delete使用的进程。lsof -n| grep delete
查看到很多的delete所占进程,但是端口号那么多不可能一个个删除。所以使用批量删除了。
我是写了个aa.sh脚本,内容如下:
lsof -n|grep delete | awk 'kill -9 {print "kill -9 " $2 }' > bb.sh
执行aa.sh脚本 生成bb.sh 执行bb.sh脚本
本文分享了一次解决磁盘占用率显示100%但实际未满的问题经历。通过排查发现是日志文件占用过多资源,使用lsof和grep定位到delete进程,最终编写shell脚本批量清理,恢复正常磁盘使用。
1195

被折叠的 条评论
为什么被折叠?



