Linux/Logrotate
Utilisation de logrotate pour compresser les fichiers de logs tous les X jours, semaines, mois, années ...
Logrotate est installé pas défaut sur une machine sous linux .
Configuration pour compresser un/des log(s) en particulier :
- Créer un fichier de configuration dans le répertoire /etc/logrotate.d/ . Dans notre cas on va travailler sur un répertoire avec des logs apache spécifique à un site .
pico /etc/logrotate.d/monsite
On ajoute dedans :
/home/monsite/logs_apache/*.log { weekly missingok rotate 52 compress delaycompress notifempty create 640 root adm sharedscripts postrotate if [ -f "`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`" ]; then /etc/init.d/apache2 reload > /dev/null fi endscript
}
/home/monsite/logs_apache/*.log : Correspond aux fichiers log à utiliser
weekly : La rotation s’effectuera toutes les semaines. Nous pouvons aussi mettre daily pour tous les jours , monthly pour tous les mois.
missingok : signifie que l’absence du/des fichier(s) log(s) n’est pas anormale. Si cette option n’est pas active alors l’administrateur recevra un mail si le/les log(s) est/sont manquant(s).
rotate 52: Nous garderons 52 fichiers. Soit pour mon cas, 52 jours de logs
compress : Les fichiers logs secondaire c’est à dire tout ce qui n’est pas le fichier de log principal icon wink Rotation des logs avec logrotate seront compréssés.
delaycompress : Reporte la compression du journal précédent au prochain cycle de permutation. Ceci n’a un effet qu’utilisé en combinaison avec l’option compress. Elle peut être utilisée quand il n’est pas possible de demander à un programme de fermer son journal et qu’il puisse par conséquent continuer à écrire pour un moment dans le journal précédent.
notifempty: permet de ne pas permuter le journal lorsqu’il est vide
create 640 root : Les fichiers secondaire créés auront pour créateur root et auront les droits 640
postrotate/endscript : Les lignes entre prerotate et endscript (chacun devant apparaître sur une ligne isolée) sont exécutées avant permutation du journal. Ces directives doivent apparaîtrent dans la définition d’un journal
sharedscripts : permet d’executer qu’une fois le script postrotate par rotation
- Une fois que vous avez fini de configurer votre logrotate, vous pouvez forcer sont éxecution de cette manière :
logrotate -f /etc/logrotate.conf
- Pour débugger :
logrotate -d /etc/logrotate.conf