Logrotate est exécuté tous les jour via le timer de systemd configuré dans le fichier /usr/lib/systemd/system/logrotate.timer
Tests
# test la configuration du fichier /etc/logrotate.d/nginx
logrotate -d /etc/logrotate.d/nginx
# -d → debug: aucune modification n'est faite# -f → force: force la rotation# vérifier quels log ont été archivéscat /var/lib/logrotate.status
# fréquence de rotation: daily, monthly, weekly
weekly
# nombre d'archives conservées avant la suppression (file.log.1.gz)
rotate 4
# effectuer une rotation lorsque le fichier atteint la taille définie (M pour megabytes, k pour kilobytes)# size remplace la fréquence de rotation
size 10M
# effectuer une rotation lorsque le fichier atteint la taille définie ET que la la fréquence de rotation est écoulée
minsize 10M
# ne pas effectuer la rotation si le fichier est vide
notifempty
# create un fichier de log vide après la rotation
create
# il est possible de spécifier les droits, le user et le group du nouveau fichier
create xxx user group
# par défaut, même mode, user et group que le fichier précédent# zipper le fichier de log avant la rotation
compress
# zipper le fichier de log lors de la prochaine rotation. Fonctionne seulement si l'option « compress » est activée.# Utile si l'application ne peut fermer immédiatement son accès au fichier de log et continue à écrire dedans.
delaycompress
# déplacer les fichiers dans un autre répertoire après la rotation
olddir /var/log/archive
# liste des fichiers à ignorer, par défaut: .rpmorig, .rpmsave, .swp, .rpmnew, ~# l'utilisation de « + » permet d'ajouter de nouveaux fichiers à ignorer, sinon la liste est écrasée
tabooext + .pacorig .pacnew .pacsave
/var/log/dossier/*log {
# si le fichier de log n'existe pas, ne pas générer d'erreurs
missingok
# n’exécuter qu'une seule fois prescript et postscript pour tous les fichiers correspondant au pattern
sharedscripts
# par défaut prescript et postscript sont exécutés pour chaque fichier de log correspondant au pattern# code exécuté avant la rotation
prerotate
code
endscript
# code exécuté après la rotation
postrotate
code
endscript
}
Le fichier /var/run/nginx.pid contient l'id du processus nginx en cours d’exécution. kill -USR1 envoie un signal à nginx pour qu'il recharge ses fichiers de log.
php-fpm
PHP 7.0: php-fpm does no longer provide a logrotate configuration. Instead syslog/journald is used by default