Logrotate

Logrotate 失敗且沒有錯誤

  • December 31, 2021

好的,我做了一個噓聲。我認為

問題: Logrotate 失敗(或者我錯誤地認為它已經死了)並且沒有提供任何錯誤消息來解釋原因:

● logrotate.service - Rotate log files
  Loaded: loaded (/lib/systemd/system/logrotate.service; static; vendor preset: enabled)
  Active: inactive (dead) since Fri 2021-12-31 13:05:25 CST; 42min ago
    Docs: man:logrotate(8)
          man:logrotate.conf(5)
 Process: 27844 ExecStart=/usr/sbin/logrotate /etc/logrotate.conf (code=exited, status=0/SUCCESS)
Main PID: 27844 (code=exited, status=0/SUCCESS)

Dec 31 13:05:25 server1.example.com systemd[1]: Starting Rotate log files...
Dec 31 13:05:25 server1.example.com systemd[1]: logrotate.service: Succeeded.
Dec 31 13:05:25 server1.example.com systemd[1]: Started Rotate log files.

我想使用 systemd 自動重新啟動 logrotate,因為有時它會在重新啟動後失敗。因此在我的/usr/lib/systemd/system/logrotate.service文件中我添加了:

Restart=always

上面添加了kill logrotate服務。從那裡我決定撤消我的骯髒工作並刪除Restart=alwayssystemctl daemon-reload && systemctl start logrotate

沒運氣。

然後我決定調查系統日誌,看看是否能找到任何線索,使用:

#grep "logrotate" /var/log/syslog。這產生了一個線索:

Dec 31 00:00:03 server1 systemd[1]: logrotate.service: Succeeded.
Dec 31 00:36:16 server1 clamd[3544]: Fri Dec 31 00:36:16 2021 -> ^File path check failure on: /var/tmp/systemd-private-2f8e6be5a16040adb29706b9e31ae841-logrotate.service-DbrlAK
Dec 31 00:37:31 server1 systemd[1]: logrotate.service: Succeeded.
Dec 31 12:51:17 server1 systemd[1]: logrotate.service: Succeeded.
Dec 31 13:00:58 server1 systemd[1]: logrotate.service: Succeeded.
Dec 31 13:05:25 server1 systemd[1]: logrotate.service: Succeeded.

注意:您看到“成功”的所有時間都是我手動嘗試啟動 logrotate。

我在這篇關於伺服器故障的文章中讀到,這可能是由於 logrotate 試圖訪問var/log/目錄之外的日誌而引起的。/var/log而且我雖然這可能是我的問題,但是除了上面的系統日誌錯誤之外,我找不到任何外部日誌的指示:

重申:

Dec 31 00:36:16 server1 clamd[3544]: Fri Dec 31 00:36:16 2021 -> ^File path check failure on: /var/tmp/systemd-private-2f8e6be5a16040adb29706b9e31ae841-logrotate.service-DbrlAK

從我調查蛤蜊,但是

#grep "log" /etc/clamav/clamd.conf 
LogSyslog false
LogFile /var/log/clamav/clamav.log

收益,什麼都沒有。有誰知道為什麼 logrotate 不會啟動?

logrotate.service應該是不活動的。它不作為守護程序執行,而是由logrotate.timer, check定期觸發systemctl status logrotate.timer

引用自:https://serverfault.com/questions/1088646