linux日志輪詢logrotate不執行的排故方法【原創】


故障現象

有個系統服務器重新搭建部署應用后發現nginx日志不輪詢。手動執行logrotate命令能成功,但是自動執行不成功。

排查問題思路如下:

1、先看下配置文件是否正確,可以先手動執行

logrotate /etc/logrotate.conf

2、看下logrotate執行的結果

# cat /var/lib/logrotate.status
logrotate state -- version 2
"/var/log/ConsoleKit/history" 2020-8-1
"/var/log/yum.log" 2020-7-28
"/var/log/salt/key" 2020-8-8
"/app/logs/http_error.log" 2020-9-18
"/var/log/dracut.log" 2020-7-28
"/var/log/salt/master" 2020-8-8
"/var/log/wtmp" 2020-7-28
"/app/logs/https_error.log" 2020-9-18
"/var/log/spooler" 2020-9-13
"/var/log/btmp" 2020-9-1
"/var/log/puppet/*log" 2020-9-17
"/var/log/xferlog" 2020-9-5
"/app/logs/http_access_combined.log" 2020-9-18
"/var/log/maillog" 2020-9-13
"/var/log/secure" 2020-9-13
"/var/log/salt/minion" 2020-9-13
"/app/logs/http_access.log" 2020-9-18
"/app/logs/https_access.log" 2020-9-18
"/var/log/messages" 2020-9-13
"/var/account/pacct" 2020-7-28
"/var/log/cron" 2020-9-13
"/var/log/vsftpd.log" 2020-9-5

3、logrotate是crontab執行的,涉及到以下倆個文件

# cat /etc/cron.daily/logrotate
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

有的服務還會在crontab設置定時執行,我的沒有這個文件。

cat /etc/cron.d/nginx 
55 23 * * * root sleep `perl -e "print int(rand(120))"` && /usr/sbin/logrotate -v -f /usr/local/nginx/conf/logrotate.conf

4、由於並沒有發現問題,我的日志輪詢不生效,為了先解決問題,只能自己寫個crontab了

# 日志輪詢
0 0 * * * /usr/sbin/logrotate /etc/logrotate.conf

 

參考

Nginx日志歸檔logrotate配置失效不執行的問題排查記錄 - 服務端開發 http://tabalt.net/blog/nginx-logrotate-execution-failure/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM