Logrotate
如何 tar-gz 目錄中超過 28 天的所有文件?
每天我都在刪除文件夾中的日誌文件。
find ~/folder -mtime +28 -type f -delete
現在我想歸檔和壓縮所有受上述刪除命令影響的文件,並將這個 tar.gz 儲存在一個新的目錄文件夾中。
所以讓我們假設:
~/folder: - x1 (3 days old) - x2 (3 days old) - y1 (29 days old) - y2 (29 days old) ~/folder2: - genericname1.tar.gz: (some already present archive) - ...
歸檔、壓縮和刪除
~/folder: - x1 - x2 ~/folder2: - genericname1.tar.gz: - ... - genericname2.tar.gz: - y1 - y2
您可以執行這樣的腳本(假設 GNU
tar
或libarchivebsdtar
):find . -type f -mtime +28 -print0 | tar -czvf backup.tar.gz --null -T -
或者開始使用 logrotate(推薦)。您將自定義配置文件放在
/etc/logrotate.d/yourfile
範例文件中:/var/log/news/news.crit { monthly rotate 2 olddir /var/log/news/old missingok postrotate kill -HUP ‘cat /var/run/inn.pid‘ endscript nocompress }
您可以在此處查看有關所有 logrotate 配置選項的更多資訊