当文件名称中包含日期时,如何使用 logrotate 压缩并删除旧的压缩文件?

当文件名称中包含日期时,如何使用 logrotate 压缩并删除旧的压缩文件?

我每天都会生成名为 my_file_YYYYMMDD.csv 的文件(例如,my_file_20160406.csv、my_file_20160407.csv 等等)。

我希望 logrotate 每天压缩它们并且只保留最后 30 个文件。

问题是它正在生成 cisco_counters-20160406.csv.1.gz 文件,并且它们永远不会被删除。

我如何让 logrotate 压缩我的文件、删除 .csv 文件并删除所有超过 30 天的压缩文件?

注意:不幸的是,我不能从我的文件中删除该日期。

谢谢。

答案1

与其使用 logrotate,不如使用 'tmpwatch',它将删除超过 X 小时未修改的文件 (--mtime)。当文件不适合 logrotate 的结构时,我会使用它。

相关内容