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
?