¿Por qué deberíamos usar create y copytruncate juntos?

40

The Geek Stuff tiene un ejemplo sobre logrotate. copytruncatecopiará y truncará el archivo de registro original.

Entonces, ¿por qué deberíamos usar create? El archivo de registro original no se ha eliminado.

/tmp/output.log {
  size 1k
  copytruncate
  create
  compress
  compresscmd /bin/bzip2
  compressext .bz2
  rotate 4
  maxage 100
}

Otra pregunta es ¿de qué sirve maxage 100? La rotate 4directiva eliminará los archivos de registro antiguos después de 4 rotaciones.

Majid Azimi
fuente
44
Sí, eso no tiene sentido e man logrotateincluso lo dice: " copytruncate : [...] cuando se usa esta opción, la opción crear no tendrá ningún efecto, ya que el archivo de registro anterior permanece en su lugar".
Ulrich Schwarz
1
maxage 100eliminará los archivos rotados cuando tengan más de 100 días y el archivo actual se rota; incluso cuando 4existen menos archivos rotados.
Lutz Prechelt

Respuestas:

57

Probablemente sea un error, solo se encuentra en un ejemplo en ese tutorial. Todos los demás ejemplos tienen copytruncatesin la createopción. También la logrotate página del manual dice que en realidad se ignorará :

copytruncate

Trunca el archivo de registro original a tamaño cero en su lugar después de crear una copia, en lugar de mover el archivo de registro anterior y, opcionalmente, crear uno nuevo. Se puede usar cuando no se le puede decir a algún programa que cierre su archivo de registro y, por lo tanto, puede continuar escribiendo (agregando) en el archivo de registro anterior para siempre. Tenga en cuenta que hay un intervalo de tiempo muy pequeño entre copiar el archivo y truncarlo, por lo que podrían perderse algunos datos de registro. Cuando se utiliza esta opción, la opción de creación no tendrá ningún efecto, ya que el archivo de registro anterior permanece en su lugar.


En lo que respecta maxage, creo que puede ser útil por ejemplo para los archivos de registro que puede estar vacío durante unos períodos de rotación (días / semanas / meses) - si se utiliza notifempty, no será girado archivo de registro vacío, lo que puede tener demasiado viejos archivos rotados todavía en su sitio .

Marki555
fuente