Shell

將舊日誌文件壓縮成單個 zip-linux

  • January 8, 2015

我有一個文件夾/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.gzdump.sql.2.gz等等,並刪除最舊的。

logrotate本身通常由 呼叫cron,因此請查看您的/etc/cron*目錄以控制它何時執行。

引用自:https://unix.stackexchange.com/questions/58750