Logrotate
Logrotate:如何在 postrotate 中訪問輸出文件
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。