Bonjour à tous et à tous.
Nginx me crée un fichier access.log chaque jour. J’aimerai savoir si il est possible de modifier cela pour que Nginx crée un fichier access.log seulement une fois par mois.
Je suis conscient que ça va me faire des fichiers plus gros mais ça peut me simplifier la vie d’utiliser un seul fichier pour un mois d’autant que je n’ai pas beaucoup de pages vu sur mon site (moins de 900 par mois).
J’ai fait une recherche mais je ne trouve pas comment configurer cela.
Si quelqu’un a une idée ?
Merci à vous.
Salut,
en fait ce n’est pas nginx qui crée un fichier chaque jour, il se contente d’écrire dans les fichiers de log indiqués.
C’est logrotate qui, chaque jour (via cron
), archive le fichier de log courant et en crée un nouveau.
Tu peux modifier le comportement de logrotate, par exemple mon fichier /etc/logrotate.d/nginx
est comme ça:
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
En gros, tous les jours, logrotate archive (renommage et compression) les fichiers log nginx, et conserve les 14 plus récents.
Tu peux remplacer daily
par monthly
et ajuster le paramètre rotate
selon ce qui convient.
PS: la doc logrotate
Bonjour, Sputnik93.
Ben je serais moins con ce soir
Je ne m’étais jamais questionné sur le fonctionnement des journaux.
Merci pour ton explication clair et précise.
J’ai fait les modifications et redémarré le service logrotate.
Encore merci.