Apache: compresser les logs générés par cronolog

Dans un article précédent, j’expliquais comment utiliser cronolog avec Apache pour créer des fichiers en fonction de la date.

On obtient des fichiers classés de la sorte :

/var/log/apache2# ls -l 2016/01/
-rw-r--r-- 1 root root 4136552 Jan 1 23:59 01_blog.preprod_access.log
-rw-r--r-- 1 root root 86773599 Jan 1 23:59 01_blog.prod_access.log
-rw-r--r-- 1 root root 5314165 Jan 2 23:59 02_blog.preprod_access.log
-rw-r--r-- 1 root root 177562123 Jan 2 23:59 02_blog.prod_access.log
-rw-r--r-- 1 root root 5804359 Jan 3 23:59 03_blog.preprod_access.log
-rw-r--r-- 1 root root 159230127 Jan 3 23:59 03_blog.prod_access.log
[...]

Cronolog  ne compresse pas les fichiers qu’il écrit.

Pour faire de la place et archiver progressivement les logs, un script à base de la commande find fait largement l’affaire :

find /var/log/apache2/`date +%Y`/ -name « *.log » -mtime +1 -exec gzip « {} » « ; »

Ici, j’ai ajouté `date +%Y` dans le chemin de recherche des logs pour fonctionner avec les logs de l’année courante.

  • -mtime +1 : recherche les fichiers dont la date de modification est supérieure à 24h (1*24h)
/var/log/apache2# ls -l 2016/01/
total 579552
-rw-r--r-- 1 root root 180159 Jan 1 23:59 01_blog.preprod_access.log.gz
-rw-r--r-- 1 root root 5723517 Jan 1 23:59 01_blog.prod_access.log.gz
-rw-r--r-- 1 root root 225293 Jan 2 23:59 02_blog.preprod_access.log.gz
-rw-r--r-- 1 root root 9896313 Jan 2 23:59 02_blog.prod_access.log.gz
-rw-r--r-- 1 root root 241911 Jan 3 23:59 03_blog.preprod_access.log.gz
-rw-r--r-- 1 root root 9817631 Jan 3 23:59 03_blog.prod_access.log.gz
[...]
 

admin