Ubuntu

Logrotate:按特定大小輪換所有日誌文件並每小時輪換一次

  • June 27, 2017

我在 ubuntu 上的 logrotate 文件每天執行。我想確保它每小時輪換一次日誌文件,以不再出現完整的磁碟錯誤。所以我的 logrotate 文件在 cron.daily 文件夾中,只需將其移動到 cron.hourly 就足夠了嗎?

我還想將最大日誌文件大小保持在 5MB,但我不確定在 logrotate.cnf 中要更改什麼。

logrotate.cnf 內容(沒有換行符):

每週輪換 4 創建包括 /etc/logrotate.d

/var/log/wtmp { missingok 每月創建 0664 根 utmp 輪換 1 }

/var/log/btmp { missingok 每月創建 0660 根 utmp 輪換 1 }

我知道我必須使用size 5M,但是我應該在哪裡寫呢?我是否認為第一行適用於所有日誌文件,第二行和第三行僅適用於 wtmp 和 btmp?因此,如果我的邏輯是正確的,那麼我必須在所有行中寫入5M 大小,對嗎?

為了使其產生任何效果,cron 腳本必須至少按照您想要輪換文件的頻率執行。即使您目前每天執行一次腳本(來自 cron.daily),它也只會每週更改一次文件(weeklylogrotate 腳本中的關鍵字設置預設值,在 wtmp 和 btmp 的情況下將覆蓋為每月)。

我最近的 Linux 機器上的 logrotate 版本只持續到每天的持續時間(儘管設置大小限制會強製文件更頻繁地旋轉)。話雖如此,對於大多數伺服器來說,日誌輪換是破壞性的;如果您的目標是節省空間,那麼保留更少的歷史文件並壓縮它們可能更合適:

daily rotate 2 compress size 5M create include /etc/logrotate.d

/var/log/wtmp { missingok monthly create 0664 root utmp rotate 1 }
/var/log/btmp { missingok monthly create 0660 root utmp rotate 1 }

(請注意,如果第一行中的更改在其他地方被覆蓋,則它們將無效。)

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