Logging

每日日誌輪換 - 保留原件

  • August 22, 2018

我正在開發託管 graylog 伺服器的 Ubuntu 14.04。在 /var/log/upstart/ 目錄中,我有一個包含所有傳入消息的純文字日誌——它被設置為每 3GB 輪換一次。但是,我之前遇到的問題是,每當它旋轉時,我的“graylog-server.log”都會重命名為“graylog-server.log.1”,這是我不喜歡的。我在配置中添加了“複製”關鍵字,現在文件名很好!但它也會將所有消息留在日誌文件中 - 我希望在它們被壓縮後清除它們。所以我的問題是…

  • 是否有 config 關鍵字可以幫助我完成此操作?我看過它們,但我是 logrotate 的新手,所以也許我錯過了一些東西。
  • 如果做不到這一點,有沒有辦法可以安排在輪換後立即清空日誌文件?我可能會丟幾條消息,但這並不會讓我太擔心。

謝謝!

配置:

/var/log/upstart/*server.* {
       size 3G
       missingok
       rotate 5
       compress
       notifempty
       nocreate
       copy
}

通常最新輪換的日誌文件 ( file.1) 保持未壓縮,並在下一次輪換 ( file.1-> file.2.gz) 中被壓縮。

如果要立即壓縮旋轉的日誌文件,可以添加

nodelaycompress

選項。

來自man logrotate

nodelaycompress

不要將前一個日誌文件的壓縮推遲到下一個循環週期(這會覆蓋delaycompress選項)。

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