Logrotate

Logrotate 追加而不是替換文件名上的日期

  • March 15, 2017

我在 RedHat 系統上執行了 logrotate。我更改了配置以每天輪換文件夾中的所有文件。幾天后,文件列表顯示如下:

login.log-20170220
login.log-20170220-20170222
login.log-20170220-20170222-20170224
login.log-20170220-20170222-20170224-20170226
login.log-20170220-20170222-20170224-20170226-20170228
login.log-20170220-20170222-20170224-20170226-20170228-20170302
login.log-20170220-20170222-20170224-20170226-20170228-20170302-20170304
login.log-20170220-20170222-20170224-20170226-20170228-20170302-20170304-20170306
login.log-20170220-20170222-20170224-20170226-20170228-20170302-20170304-20170306-20170308
login.log-20170220-20170222-20170224-20170226-20170228-20170302-20170304-20170306-20170308-20170310
login.log-20170220-20170222-20170224-20170226-20170228-20170302-20170304-20170306-20170308-20170310-20170312
login.log-20170228
login.log-20170228-20170302
login.log-20170228-20170302-20170304
login.log-20170228-20170302-20170304-20170306
login.log-20170228-20170302-20170304-20170306-20170308
login.log-20170228-20170302-20170304-20170306-20170308-20170310
login.log-20170228-20170302-20170304-20170306-20170308-20170310-20170312
login.log-20170306
login.log-20170306-20170308
login.log-20170306-20170308-20170310
login.log-20170306-20170308-20170310-20170312

我在其他系統中也有相同的設置,從來沒有遇到過這個問題……這是 logrotate.d/ 中的配置

/var/log/syslog-wal/* {
   missingok
   notifempty
   create 0640 root wheel
   daily
   rotate 14
}

我覺得很奇怪,每 8 天就有新一輪的文件。有什麼線索嗎?該文件夾位於 /var/log 中,但我在其他標準 logrotate.d 文件中沒有看到任何可以解釋這一點的內容。

該模式/var/log/syslog-wal/*不僅匹配login.log該日誌的所有輪換,還匹配該日誌的所有輪換,這意味著將輪換每個文件並在其名稱後附加日期(如果文件滿足輪換條件)。

再次執行時,這些文件中的每一個都將附加日期等。

所以解決方案是只指定/var/log/syslog-wal/login.log,或者可能/var/log/syslog-wal/*.log,作為模式。

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