2013-03-03 2 views
0

Dans OpenBSD, il n'y a pas de logrotate dans les ports, et newsyslog semble avoir des fonctionnalités limitées en ce qui concerne la rotation mensuelle d'un grand nombre de fichiers journaux.Quelle est la manière la plus simple de faire tourner les fichiers journaux de nginx tous les mois?

J'ai beaucoup de domaines, un grand nombre de noms de fichiers journaux nginx comme /var/www/logs/*/*.{access,error}.log. Je pense à un petit script shell et cronjob. Quel serait le moyen le plus simple de les faire tous les mois et d'ajouter le mois précédent au nom de fichier?

+0

pourrait vous donner des détails sur les fonctionnalités limitées de newsyslog? Aussi cette question devrait être dans serverfault IMO. – ramrunner

+0

'newsyslog' ne vous permet pas de postfixer la date dans le nom de fichier des fichiers pivotés (' ... .access.log.2013-02'), et il ne prend pas en charge les caractères génériques. Cette question concerne les astuces shell (renommer les fichiers via shell), donc je pense que stackoverflow est un lieu plus approprié que serverfault. – cnst

Répondre

0

Je pense que le crontab devrait fonctionner:

0 0 1 * * /etc/nginx/logrotate.monthly.sh 

Où /etc/nginx/logrotate.monthly.sh devrait avoir le contenu suivant:

find /var/www/logs/ -name "*log" -exec \ 
mv -i {} {}.`sh -c 'date -r $(expr $(date +%s) - 1209600) +%Y-%m'` \; ; \ 
kill -USR1 `cat /var/run/nginx.pid` 

L'option -i à mv est importante pour s'assurer que les fichiers ne sont pas écrasés. Nous obtenons la date pour le nom de fichier en déplaçant la date d'aujourd'hui deux semaines en arrière (selon « tcsh: print date 2 weeks ago in shell »).

0

veuillez également vérifier ceci [email protected] thread.

(également garder à l'esprit la mise en garde documentée dans le FAQ au sujet privseped apache et la nécessité d'une petite fenêtre de temps sur le mouvement.)

+0

le misc @ thread ne résout pas le problème avec plusieurs dizaines de fichiers '/ var/www/logs/.../... .access.log' pour différents domaines – cnst

Questions connexes