【4.9】日志删除后未立刻释放空间
问题版本:
4.9
问题现象/报错:
Center的log日志路径为:/var/log/auditsys/,log文件名称为:auditsys_center.log和auditsys_center.log-2022-3-11.log
因/var目录空间报警,故直接rm -rf auditsys_center.log-2022-*,但删除后df -h查看磁盘空间仍为释放,auditsys_center.log-2022开头的log文件确已经删除。
排查思路/解决方案:
排查思路:
- 查看日志被哪个服务占用
lsof | grep delete OR lsof |grep 文件名称|more
- 重启服务
systemctl restart 服务名称
问题原因:
一个文件在文件系统中的存放分为两个部分:数据部分和指针部分,指针位于文件系统的meta-data中,在将数据删除后,这个指针就从meta-data中清除了,而数据部分存储在磁盘中。在将数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,之所以在出现删除auditsys_center.log-2022*文件后,空间还没释放,就是因为某进程还在一直向这个文件写入内容,导致虽然删除了auditsys_center.log-2022*文件,但是由于进程锁定,文件对应的指针部分并未从meta-data中清除,而由于指针并未删除,系统内核就认为文件并未删除,因此通过df 查询空间并未释放也就不足为奇了
解决办法:
- echo ” ” >/var/log/auditsys/auditsys_center.log-2022-3-11
- vi /etc/logrotate.d/auditsys 修改center日志保存大小及文件数量