Shell
將舊日誌文件壓縮成單個 zip-linux
我有一個文件夾
/home/testuser/log
,其中包含一天前的日誌文件*.log
。我希望將所有超過一天的日誌文件壓縮為一個 zip(gzip 或 tar.gz)並刪除舊文件。我嘗試管道查找和 tar 命令,但沒有工作
創建早於一天日誌的 tar.gz 文件
find /home/testuser/log/ -mtime +1 | xargs tar -czvPf /opt/older_log_$(date +%F).tar.gz
刪除舊文件
$$ Note:- if below find output is Correct then remove echo , after that it will delete those files $$
find /home/testuser/ -mtime +1 | xargs -n1 echo rm
擴展 sr_ 的評論,我使用 logrotate 來管理夜間 SQL 轉儲。我有這個配置
/etc/logrotate.d/mydbdump
:/var/backups/dump.sql { daily rotate 7 missingok create 640 root root compress }
它基本上採用
/var/backups/dump.sql
文件(您可以指定日誌文件的名稱),壓縮它並將其重命名為dump.sql.1.gz
. 在此之前,它將舊的旋轉dump.sql.1.gz
到dump.sql.2.gz
等等,並刪除最舊的。
logrotate
本身通常由 呼叫cron
,因此請查看您的/etc/cron*
目錄以控制它何時執行。