Utiliser xz avec logrotate

Aug. 16, 2013

Bonjour.

XZ est un format de compression que j’apprécie fortement, notamment pour ses bons résultats sur la compression de fichiers texte. Et depuis pas mal de temps, je voulais l’utiliser avec logrotate.

Chose faite avec la configuration suivante (que j’ai mis dans le fichier /etc/logrotate.conf pour qu’elle soit utilisée pour tous les logs) :

compresscmd /usr/bin/xz compressext .xz uncompresscmd /usr/bin/unxz

L’option de compression par défaut est “-9” qui fonctionne aussi avec xz, donc pas besoin de la modifier.

Dans mon cas, logrotate ne traite que les fichiers de logs présents dans /var/log, donc ce petit find m’a servi à décompresser les fichiers GZIP et les recompresser au format XZ :

find /var/log -name “*.gz” | while read filename; do gunzip $filename && xz -vz9 ${filename%.gz}; done

Sous Debian, les outils qui gèrent les formats XZ (notamment xz et unxz utilisés ici) sont dispos dans le paquet xz-utils.

++