Logrotate

Logrotate:如何在 postrotate 中訪問輸出文件

  • May 8, 2015

Nginx我每天輪換日誌(使用dateext)。輪換後,我想解析剛剛過去的那一天的文件,並用 Nginx 伺服器返回的錯誤數編譯一封電子郵件。

如何訪問 postrotate / endscript 部分中的輸出文件logrotate

如果您正在尋找什麼,我不知道您可以使用任何變數。/var/log/somefile.1但是,在輪換日誌後,您應該根據您為輪換設置的配置(或類似配置)準確地知道文件已輪換到的名稱。

如果您描述了您要解決的實際問題,也許會更容易回答?

如果您沒有使用“sharedscripts”指令,那麼您的 postrotate 腳本會以 $1 的形式接收觸發日誌輪換的文件。如果您嘗試使用具有多個 logrotate 節的通用腳本,這可能會有所幫助。也就是說,給定這樣的事情:

/var/log/sample1.log /var/log/sample[23].log {
 ..config...
}

如果需要輪換任何匹配的文件,將呼叫您的腳本,並將 $1 設置為“/var/log/sample1.log”、“/var/log/sample2.log”或“/var/log/sample3.log” “ 作為適當的。然後,您可以附加“.1”來查找剛剛旋轉的文件。

如果您使用“sharedscripts”選項,那麼您的腳本將被呼叫,並將 $1 設置為“/var/log/sample1.log /var/log/sample

$$ 23 $$.log”(這將幫助您辨識特定的節,但不是確切的文件)。 希望這能給你一個開始的地方。請注意,這僅適用於 logrotate > v3.7.5。

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