Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell Cron:压缩本周的日志文件,而不重新压缩上一个日志文件。单行线_Shell_Cron - Fatal编程技术网

Shell Cron:压缩本周的日志文件,而不重新压缩上一个日志文件。单行线

Shell Cron:压缩本周的日志文件,而不重新压缩上一个日志文件。单行线,shell,cron,Shell,Cron,我有很多日志,我需要每周压缩一次,这是每个星期六。我设法做了一个oneliner来做到这一点,但我不想重新压缩已经压缩的文件。例如: ls myDir/ test1 test2 test3 在第1周的星期六,我将有: ls myDir/ test1.bz2 test2.bz2 test3.bz2 在第2周,我会: ls myDir/ test1.bz2 test2.bz2 test3.bz2 newTest1 newTest2 在第2周的星期六,我希望: 这是:压缩文件,但不重新压缩已

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

ls  myDir/
test1 test2 test3
在第1周的星期六,我将有:

ls myDir/
test1.bz2 test2.bz2 test3.bz2
在第2周,我会:

ls  myDir/
test1.bz2 test2.bz2 test3.bz2 newTest1 newTest2
在第2周的星期六,我希望:

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

这是我的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)

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

尝试以下命令:

find /myDir -name 'log*' -and -not -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;

请尝试以下命令:

find /myDir -name 'log*' -and -not -name '*.bz2' -ctime +7 -exec bzip2 -zv {} \;

极好的非常感谢。小问题:如果我不进行额外的验证,我会遇到问题,在重新压缩方面——在这种情况下我没有遇到过,这就是为什么我问得很好。非常感谢。小问题:如果我不进行额外的验证,我会遇到问题,在重新压缩方面——在这种情况下我没有遇到过,这就是我为什么要问的原因-