将旧日志文件压缩到单个 zip-linux 中

将旧日志文件压缩到单个 zip-linux 中

我有一个文件夹/home/testuser/log,其中包含一天前的日志文件*.log。我希望将所有超过一天的日志文件压缩为单个 zip(gzip 或 tar.gz)并删除较旧的文件。

我尝试管道查找和 tar 命令但没有成功

答案1

创建早于一天日志的 tar.gz 文件

find /home/testuser/log/ -mtime +1 | xargs  tar -czvPf  /opt/older_log_$(date +%F).tar.gz

删除较旧的文件 [注意:- 如果下面的 find 输出正确,则删除 echo ,之后它将删除这些文件]

find /home/testuser/ -mtime +1 | xargs  -n1 echo rm

答案2

扩展 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*目录以控制它的运行时间。

相关内容