Comment tar-gz tous les files de plus de 28 jours dans un directory?

Chaque jour, je supprime les files journaux dans un dossier.

find ~/folder -mtime +28 -type f -delete 

Maintenant, je voudrais archiver et compresser tous les files touchés par la command delete ci-dessus et stocker ce tar.gz dans un nouveau directory folder2.

Alors supposons ceci:

 ~/folder: - x1 (3 days old) - x2 (3 days old) - y1 (29 days old) - y2 (29 days old) ~/folder2: - genericname1.tar.gz: (some already present archive) - ... 

archiver, compresser et supprimer

 ~/folder: - x1 - x2 ~/folder2: - genericname1.tar.gz: - ... - genericname2.tar.gz: - y1 - y2 

Vous pouvez soit exécuter un script comme celui-ci (en supposant GNU tar ou libarchive bsdtar ):

 find . -type f -mtime +28 -print0 | tar -czvf backup.tar.gz --null -T - 

Ou commencez à utiliser logrotate (recommandé). Vous placez votre file de configuration personnalisé dans /etc/logrotate.d/yourfile file, exemple de file:

  /var/log/news/news.crit { monthly rotate 2 olddir /var/log/news/old missingok postrotate kill -HUP 'cat /var/run/inn.pid' endscript nocompress } 

Vous pouvez voir plus d'informations sur toutes les options de configuration logrotate ici