Logrotate

日誌旋轉不起作用

  • November 4, 2021

我想為我的 Tomcat 伺服器的 catalina.out 日誌文件設置每日 logrotate,但它不起作用 - 我沒有看到創建的旋轉日誌文件。

為了排除故障,我執行***logrotate -d /etc/logrotate.conf***並得到以下資訊:

rotating pattern: /usr/local/tomcat/logs/catalina.out  5242880 bytes (7 rotations)
empty log files are rotated, old logs are removed
considering log /usr/local/tomcat/logs/catalina.out
 log needs rotating
rotating log /usr/local/tomcat/logs/catalina.out, log->rotateCount is 7
dateext suffix '-20151223'
glob pattern '-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
glob finding old rotated logs failed
copying /usr/local/tomcat/logs/catalina.out to /usr/local/tomcat/logs/catalina.out-20151223
truncating /usr/local/tomcat/logs/catalina.out
compressing log with: /bin/gzip 

似乎一切正常,沒有任何錯誤。但是,沒有結果:

[root@gec logrotate.d]# ls -lrth /usr/local/tomcat/logs/cata*
-rw-r--r-- 1 root root  398 Dec  4 17:48 /usr/local/tomcat/logs/catalina.2015-12-04.log
-rw-r--r-- 1 root root 109M Dec 23 17:21 /usr/local/tomcat/logs/catalina.out 

我的***/etc/logrotate.conf***:

daily

rotate 7

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d 

我的***/etc/logrotate.d/tomcat***:

/usr/local/tomcat/logs/catalina.out {
   copytruncate
   daily
   rotate 7
   compress
   missingok
   size 5M
}  

怎麼了?

更新:

有趣的是,執行***logrotate -f /etc/logrotate.conf***會創建旋轉 gzip 文件!

[root@gec logrotate.d]# ls -lrth /usr/local/tomcat/logs/cata*
-rw-r--r-- 1 root root  398 Dec  4 17:48 /usr/local/tomcat/logs/catalina.2015-12-04.log
-rw-r--r-- 1 root root 1.1M Dec 23 17:26 /usr/local/tomcat/logs/catalina.out-20151223.gz
-rw-r--r-- 1 root root 109K Dec 23 17:27 /usr/local/tomcat/logs/catalina.out

但是,我怎麼知道每天的 cron 作業是否有效?

你在logrotate -d /etc/logrotate.conf爭論-d

參數是調試模式,你可以說是“-d幹執行”。它只會在 logrotate 可以工作但不會輪換日誌的情況下為您提供資訊。

自參數指定 logrotate 以強制 logrotate以來的logrotate -f工作。-f

引用logrotate的手冊:

  • -d,–調試

打開調試模式並暗示 -v。在調試模式下,不會對日誌或 logrotate 狀態文件進行任何更改。

  • -f, –force 告訴 logrotate 強制旋轉,即使它認為沒有必要。有時這在向 logrotate 配置文件添加新條目後很有用

,或者如果

手動刪除了舊日誌文件,因為將創建新文件,並且日誌記錄

將繼續正確。

如果logrotate -d /etc/logrotate.conf給你輸出日誌將被旋轉和壓縮,那麼當 logrotate 將通過你的配置文件時它肯定會旋轉它。

引用自:https://unix.stackexchange.com/questions/251106