我的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 的輪轉同樣會受到影響