La page de manuel de logrotate
dit que:
It can be used when some program cannot be told to close its logfile
and thus might continue writing to the previous log file for some
time.
Je suis confus par ceci. S'il est impossible de dire à un programme de fermer son fichier journal, il continuera à écrire pour toujours , pas pendant un certain temps . Si la compression est reportée au cycle de rotation suivant, le programme continue à écrire dans ce fichier, même après le cycle de rotation suivant. Comment remettre à plus tard le problème?
Je crois comprendre que cela copytruncate
devrait être utilisé lorsqu'un programme ne peut pas être invité à fermer le fichier journal. Je suis conscient que certaines données écrites dans le fichier journal sont perdues lorsque la copie est en cours.
Je regardais le fichier logrotate pour CouchDB, et il avait à la fois copytruncate
et les delaycompress
options.
/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
Il semble qu'il ne sert à rien d'utiliser delaycompress
quand copytruncate
existe déjà. Qu'est-ce que je rate?
copytruncate
, il n'est pas nécessaire d'indiquer au programme de fermer son fichier journal. Donc, est-il inutile de préciserdelaycompress
aveccopytruncate
?copytruncate
sauf si vous devez absolument , car il perd les entrées du journal. Vous pouvez utiliser les deux options si vous souhaitez utiliser l’autre fonctionnalité proposée,delaycompress
à savoir la possibilité de lire le fichier journal précédent sans avoir à le décompresser au préalable.copytruncate
si je ne peux pas dire à mon programme de recharger?Je ne suis pas sûr de bien comprendre votre question, mais si vous demandez ce que je pense ... j'utilise ceci:
C'est un bon (ou au moins un moyen) de tuer le journal et de passer au suivant. Cela fonctionne pour les "programmes" qui craignent, tels que la plate-forme ASA de Cisco qui enregistre des tonnes de données par seconde.
la source
Nous utilisons:
Cela crée une copie fixe d'Apache
access_log
access_log.1
afin que nous puissions ensuite exécuter notre paquet Stats sous forme de script à la fin de la journée.Le jour suivant, logrotate compresse le fichier en créant
access_log.2.zip
la source