Je fais tourner les Nginx
journaux quotidiennement (avec dateext
). Après la rotation, je veux analyser le fichier pour le jour qui vient de s'écouler et compiler un e-mail avec le nombre d'erreurs renvoyées par le serveur Nginx.
Comment puis-je accéder au fichier de sortie dans la section postrotate / endscript de logrotate
?
Réponses:
Je ne connais aucune variable que vous pouvez utiliser si c'est ce que vous recherchez. Cependant, immédiatement après la rotation du journal, vous devez savoir précisément le nom vers lequel le fichier a été tourné en fonction de la configuration que vous avez définie pour la rotation (
/var/log/somefile.1
ou similaire).Il serait peut-être plus facile de répondre si vous décrivez le problème réel que vous essayez de résoudre?
la source
Si vous n'utilisez pas la directive "sharedscripts", votre script postrotate reçoit, en tant que $ 1, le fichier qui a déclenché la rotation du journal. Cela peut être utile si vous essayez d'utiliser un script générique avec plusieurs strophes logrotate. Autrement dit, étant donné quelque chose comme ceci:
Si des fichiers correspondants doivent être tournés, votre script sera appelé avec $ 1 défini sur "/var/log/sample1.log", "/var/log/sample2.log" ou "/var/log/sample3.log" "selon le cas. Vous pouvez ensuite ajouter ".1" pour trouver le fichier qui vient d'être pivoté.
Si vous utilisez l'option "sharedscripts", votre script sera appelé avec $ 1 défini sur "/var/log/sample1.log /var/log/sample[23[.log" (ce qui vous aidera à identifier une strophe particulière mais pas le fichier exact).
Espérons que cela vous donne un point de départ. Notez que cela ne fonctionnera que pour logrotate> v3.7.5.
la source