壓縮舊日誌檔案並移動到新目錄

壓縮舊日誌檔案並移動到新目錄

我有一個資料夾/home/usr/logs/,其中包含超過 1 天的日誌檔案。我希望將所有超過一天的日誌檔案壓縮為單獨的壓縮存檔(例如 zip 或 tar.gz)並將它們移動到資料夾/home/usr/logs/archive

日誌檔案的命名格式為valid.app5s.log.1019, app5s.gf3sts.1019, valid.app5s.gf3log.1019, app5s.gf3log.1019, app5s.gf1sts.1019, valid.app5s.gf1log.1019, app5s.sts.1019

我嘗試這樣:

find .  -mtime +1 -exec zip filename.zip '{}' + && mv filename.zip archive/ \;

但這些檔案未正確壓縮。有人能幫我找出我的程式碼中的錯誤嗎?

答案1

logrotate 可以做到這一點,模式匹配可以是 *log,然後新增一個名為「postrotate」的部分,考慮 postrotate 一個在旋轉後運行的小 bash 腳本。

例子;

/home/usr/logs/*.log {
    daily
    missingok
    compress
    #delaycompress (this will prevent compressing of one day)
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
                mv /home/usr/logs/*.gz /home/usr/logs/archive/;
    endscript
}

更新1:

如果你想使用 zip 而不是 gzip,請加;

compresscmd /usr/bin/zip
compressoptions -r
compressext .zip

相關內容