我的logrotate配置,原本运行正常,最近几天发现轮转失败,两个目录下的日志全部无法轮转,于是开始排查问题
/data01/logs/test1/*.log
/data01/logs/test2/*.log {missingokrotate 1notifemptycreate 0644 www-data admsharedscriptsprerotateif [ -d /etc/logrotate.d/httpd-prerotate ]; then \run-parts /etc/logrotate.d/httpd-prerotate; \fi \endscriptpostrotateif [ -f /usr/local/nginx/nginx.pid ]; thenkill -USR1 `cat /usr/local/nginx/nginx.pid`fiendscript
}
在执行 logrotate -vf nginx 通过日志看到大量报错
error: skipping "/data01/logs/test2/test.com.access.log" because parent directory has insecure permissions (It's world writable or writable by group which is not "root") Set "su" directive in config file to tell logrotate which user/group should be used for rotation.
经过查看,发现/data01/logs/test2 目录的权限被修改成了 777, 权限的修改导致无法正常轮转,将/data01/logs/test2 改成 755 权限后,轮转日志恢复正常。
Note:
即使只有 /data01/logs/test2 目录权限有问题,但是 /data01/logs/test1 的轮转同样会受到影响