Cron:压缩一周的日志文件,无需重新压缩前一个。单线

Kan*_*ani 1 shell cron

我有很多日志,我需要每周压缩它们,也就是每个星期六。我设法做一个oneliner来做到这一点,但我不想重新压缩已经压缩的文件。例如:

ls  myDir/
test1 test2 test3
Run Code Online (Sandbox Code Playgroud)

第 1 周的星期六,我将有:

ls myDir/
test1.bz2 test2.bz2 test3.bz2
Run Code Online (Sandbox Code Playgroud)

第 2 周,我会:

ls  myDir/
test1.bz2 test2.bz2 test3.bz2 newTest1 newTest2
Run Code Online (Sandbox Code Playgroud)

在第 2 周的星期六,我想要

ls  myDir/
test1.bz2 test2.bz2 test3.bz2 newTest1.bz2 newTest2.bz2
Run Code Online (Sandbox Code Playgroud)

这是:压缩文件,但不会重新压缩已经压缩的文件

这是我的 crontab oneliner:

0 2 * * 6 find /myDir -name "log*" -ctime +7 -exec bzip2 -zv {} \;
This is:
   Find all the log files, 7 days of older and compress them.
   (could be obvious! but I'm a newbie)
Run Code Online (Sandbox Code Playgroud)

这只会压缩文件。但不知道如何进行验证或如何避免我所说的情况。如果我尝试再次运行该命令,似乎压缩的文件不受影响,但我不确定这是否总是如此。不想弄乱公司的生产服务器!

Sla*_*hin 5

尝试以下命令:

find /myDir -name 'log*' -and -not -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;
Run Code Online (Sandbox Code Playgroud)