最近在部署新的服务后,遇到一个磁盘空间占比高的问题,原因是日志文件太大了,但是呢,日志已经做个切割如图1,配置文件如图2,日志的切割都没有问题,只是日志不执行清除超出 rotate 数量的删除操作
排查过程
-
排查目录名称包含(.-_)是否可以正常执行
- 答案:目录名称无影响
-
排查目录权限
- 使用 root 执行 + 目录权限修改为 777,均无影响
-
排查日志文件名称
- 原日志名称为
xxxxx.20211001
, 切割后的名称为xxxxx.20211001-20211001
, 执行切割命令/usr/sbin/logrotate -v -f /usr/local/nginx/conf/logrotate.conf
, 后打印结果如图 1-3,
- 原日志名称为
- 解析图示内容:
- 日志在切割时,在原目录下必须有要切割的文件才会执行,没有文件不执行切割和删除
- 删除文件的名称是以原目录下的文件全称问匹配对象,即
xxxxx.20211001
, 删除的文件名称必须为以下格式(前缀必须相同):- xxxxx.20211001-20211001
- xxxxx.20211001-20211002
- xxxxx.20211001-20211003