將 logrorate 與複雜的日誌目錄結合使用

將 logrorate 與複雜的日誌目錄結合使用

應用程式有一個日誌目錄,其中創建了大量日誌輸出。該日誌目錄中的檔案結構如下所示:

localhost:/var/log/myapp # ls

appClient22334.a    appClient22336.a    appClient22338.a
appClient22334.b    appClient22336.b    appClient22338.b    
appClient22334.c    appClient22336.c    appClient22338.c
appClient22335.a    appClient22337.a    appClient22339.a
appClient22335.b    appClient22337.b    appClient22339.b
appClient22335.c    appClient22337.c    appClient22339.c

每天,該應用程式都會產生數百個這樣的文件,這些文件都需要儲存。數字遞增。

對於大多數目的,我每天都使用 logrotate 來儲存和壓縮日誌文件,但在這種情況下,我不知道如何做到這一點。

理想的解決方案是有類似的東西

appClient.20120324.gzip
appClient.20120325.gzip
appClient.20120326.gzip

如果可以在使用 logrotate 時完成(也許是一種聰明的使用方法prerotate?),或者如果編寫特定的 bash 腳本更快/更容易,你們中的任何人都可以將我推向正確的方向嗎?

答案1

為了讓事情變得簡單,我會執行一個每日cron 作業,將昨天的日誌檔案連接到一個檔案(例如昨天.log),並在成功時刪除它們,然後執行logrotate 來(重新)命名並壓縮該檔案。您也許可以使用強制 logrotate 來完成整個任務sharedscripts,但我不這麼認為,我不會浪費時間試圖弄清楚它。

相關內容