Logrotate permet de faire une rotation des logs ! C'est certainement déjà utiliser sur votre système. Le but est ici de l'utiliser pour ses logs perso.
Exemple pratique d'utilisation
Actuellement :
Vous avez un fichier de log qui fait 2 Go parce que ça fait 6 mois que vous avez installé votre serveur. Mais l'espace disque vous le payez et ça commence à être lourd de vider les logs tous les matins.
Avec log rotate vous avez ceci
10 fichiers de log (1 par mois) quand on passe au mois n+1 le fichier log n-9 est supprimé et le mois n-8 et renommé en n-9. L'avantage c'est que le nombre de fichier de log ne change pas logrotate peut compresser tous les logs des mois passés. Et quand vous cherchez les logs du mois dernier pas besoin de parser le log de 2 Go. Le découpage des fichiers n'est pas forcément horaire. Ca peut être un découpage par taille (rotation des logs quand le log courant atteint 10 Mo)
Dans la configuration de logrotate ( /etc/logrotate.conf ) il y a :
include /etc/logrotate.d
Donc logrotate charge les fichiers dans /etc/logrotate.d . Donc si vous avez besoin d'un logrotate vous créez un nouveau fichier dans /etc/logrotate.d :
Exemple du fichier /etc/logrotate.d/nginx :
/opt/nginx/logs/error.log {
daily
rotate 10
compress
delaycompress
missingok
notifempty
create 644 root root
}
/opt/nginx/logs/access.log {
daily
rotate 10
compress
delaycompress
missingok
notifempty
create 644 root root
}
Rotation journalière avec 10 jours de log (compression) je vous encourage à lire la documentation francaise de logrotate : https://www.delafond.org/traducmanfr/man/man8/logrotate.8.html
Source : https://www.croc-informatique.fr/2009/06/rotation-des-logs-avec-logrotate/