Comment logrotate gère-t-il les fichiers ouverts? Logrotate peut-il faire pivoter les fichiers ouverts par un processus?
Comment logrotate gère-t-il les fichiers ouverts? Logrotate peut-il faire pivoter les fichiers ouverts par un processus?
Réponses:
Pour les applications qui n'acceptent pas les signaux de logrotate comme Rory l'a décrit, j'utilise quelques méthodes.
La décision à utiliser dépend de la taille des fichiers journaux et de la nécessité de journaux homogènes. Ce sera une analyse des risques de votre part. Cependant, pour donner un exemple, j'utilise un redémarrage post-rotation sur certains journaux où je devrais réellement utiliser un copytruncate. Cependant, les fichiers comportent souvent plusieurs concerts et la copie peut prendre suffisamment de temps pour qu'il soit préférable d'en perdre une ou deux secondes chaque nuit.
On dirait que je pourrais vouloir ce qui suit, mais toujours intéressé par l'expertise de quiconque sur le sujet:
copytruncate
Truncate the original log file to zero size in place after cre‐
ating a copy, instead of moving the old log file and optionally
creating a new one.
logrotate enverra le signal correct au processus pour lui dire de rouvrir les fichiers journaux. Il fonctionne prêt à l'emploi pour des choses comme apache ou mysql.
Vous pouvez le voir dans le script postrotate pour apache. Si vous avez votre propre démon et que vous voulez que logrotate fonctionne avec lui, assurez-vous qu'il écoute un certain signal et rouvre les fichiers journaux.
Si vous ne pouvez pas modifier le programme, vous pouvez voir si le démon a un moyen de vider automatiquement les journaux. Ou ajoutez une pré-rotation qui arrête le serveur et une post-rotation qui le redémarre.