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 ne comprends pas bien. Si l'on ne peut pas dire à un programme de fermer son fichier journal, il continuera d'écrire pour toujours pas pour parfois . Si la compression est reportée au cycle de rotation suivant, le programme continue d'écrire dans ce fichier même après le cycle de rotation suivant. Comment l'ajournement résout-il le problème ?
Je crois comprendre que copytruncate
doit être utilisé lorsqu'il n'est pas possible de demander à un programme de fermer le fichier journal. Je suis conscient que certaines données écrites dans le fichier journal sont perdues lorsque la copie est en cours.
J'ai regardé le fichier logrotate pour couchdb, et il y avait à la fois copytruncate
y delaycompress
options.
/usr/local/couchdb-1.0.1/var/log/couchdb/*.log {
weekly
rotate 10
copytruncate
delaycompress
compress
notifempty
missingok
}
Il semble qu'il soit inutile d'utiliser delaycompress
quand copytruncate
est déjà là. Que me manque-t-il ?