2 votes

NGINX et la rotation des journaux : est-il possible de manquer des entrées de journal ?

Dans sa réalisation la plus simple, on peut mettre en œuvre la rotation des journaux NGINX comme suit :

mv access.log access.log.0
kill -USR1 `cat master.nginx.pid`

Ma question. Avons-nous un problème de concurrence ici ? Je veux dire, si NGINX écrit une entrée de journal entre deux actions (1) le fichier a été renommé et (2) il a reçu une commande de rechargement, est-ce que certaines entrées de journal pourraient être perdues ?

0 votes

Si cela vous aide, veuillez indiquer que la réponse est complète

1 votes

@mikhailov Bien sûr, merci de votre aide !

3voto

Anatoly Points 548

Avant d'envoyer le signal USR1, attendez 15 secondes et vous verrez que *access.log.0" est toujours utilisé. Cela se produit parce que le journal est ouvert pour l'accès en écriture basé sur l'inode, pas le nom du fichier. Il est donc possible d'utiliser cette technique de manière sûre et simultanée : mv + USR1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X