2012-06-28 55 views
-1

我有很多的日誌,我需要每週壓縮它們,這是,每個星期六。我設法做一個oneliner來做到這一點,但我不想重新壓縮已壓縮的文件。例如: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周的星期六我想要

ls myDir/ 
test1.bz2 test2.bz2 test3.bz2 newTest1.bz2 newTest2.bz2 

這就是:壓縮文件,但不重新壓縮已壓縮的文件

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

這隻能壓縮文件。但不知道如何進行驗證或如何避免我所說的情況。如果我嘗試再次運行該命令,似乎壓縮的文件不受影響,但我不確定這是否始終如此。我不想混亂公司的生產服務器!

回答

3

嘗試以下命令:

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

不俗的表現。謝謝!小問題:如果我沒有進行額外的驗證,那麼在重新壓縮方面我會遇到問題 - 在這種情況下我不會發生這種情況,這就是爲什麼我要問 - – Kani

相關問題