天天看点

【Linux】rm删除大量大日志文件,磁盘空间没有释放的问题

磁盘空间被占满触发告警,上服务器删除日志文件之后,df -h发现磁盘空间使用率没有下降,切换到日志文件所在路径,du -sh * 查看文件目录大小,计算总和发现总大小远远小于磁盘Used大小,查找相关资料,找到lsof命令。

lsof (lists openfiles)

lsof指 “列出打开文件(lists openfiles)"。因为在Linux下,"一切皆文件"的设计思想,lsof会列出包括网络套接口等文件。

我们使用

lsof | grep deleted

,查找被删除状态的文件:

[[email protected]~]# lsof | grep deleted
filebeat  222830   finance  204r      REG                8,3  1073741914   28183634 /var/home/service/var/logs-2021-07-14-23-100.log (deleted)
filebeat  222830   finance  234r      REG                8,3  1073744828   28184005 /var/home/service/var/logs-2021-07-14-23-100.log (deleted)
           

查看到是filebeat进程占用了被删除的日志文件,使用

ps -ef | grep filebeat

,找到进程id,kill掉之后等待片刻,再查看磁盘空间恢复情况即可。

继续阅读