zabbix报警磁盘使用率高 lsof deleted
zabbix提示磁盘使用率达到80%了,但是去看对应的分区,统计大小发现不对。
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/xvda3 17G 4.2G 13G 25% / devtmpfs 7.8G 0 7.8G 0% /dev tmpfs 7.7G 0 7.7G 0% /dev/shm tmpfs 7.7G 537M 7.2G 7% /run tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup /dev/xvdb1 99G 79G 15G 85% /home /dev/xvda1 1014M 131M 884M 13% /boot tmpfs 1.6G 0 1.6G 0% /run/user/0 overlay 17G 4.2G 13G 25% /var/lib/docker/overlay2/26d1ef95672fa668f982e5d65a45d76172017d915d34cc29e1192feb1fe24724/merged overlay 17G 4.2G 13G 25% /var/lib/docker/overlay2/1a7ac2aa8da4ccb74632f1e19ba58989b4ef90341577e95225c5ea568582a3db/merged overlay 17G 4.2G 13G 25% /var/lib/docker/overlay2/3525382a68d07254d42c9f9c2767391785dda8bf04f8dd1f780a373cdd34ccca/merged
# 去查home大小
[root@localhost ~]# du -sh /home 9.7G /home
实际发现才不到10G,很有可能是删除了日志文件,而不是清空文件内容。
# 通过lsof查找标记为删除状态的文件
[root@localhost tmp]# lsof | grep deleted java 557 560 root 6w REG 202,3 9248 17719072 /tmp/spring.log.7 (deleted) . . . 省略部分
第二列是进程号
# 查出来有很多重复的,这里直接截取第10列,并根据此列去重
[root@localhost tmp]# lsof | grep deleted | awk '{print $10}' | sort -u (deleted) /home/jar/basic/logs/basic-service-2020-04-20.error.log /home/jar/config/log.log /home/jar/pay/log.log /home/jar/product/log.log /home/jar/product/logs/product-service1-2020-02-11.error.log /home/jar/sign/log.log /home/jar/sign/logs/sign-2020-02-11.error.log /home/jar/zuul/log.log /home/web/tomcat-ald/logs/catalina.out /home/web/tomcat-ald/logs/host-manager.2020-02-12.log /home/web/tomcat-ald/logs/manager.2020-02-12.log /home/web/tomcat-report/logs/catalina.out /home/web/tomcat-report/logs/host-manager.2020-02-18.log /home/web/tomcat-report/logs/manager.2020-02-18.log /tmp/spring.log.7 /var/log/rabbitmq/log/crash.log.3
这里每个日志都在对应的项目目录下,这样就能查到哪些文件被打开但标记是删除。也可以通过进程号找到对应进程。
挨个去重启相应的服务就会释放打开的文件。
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/4759.html