Pourquoi devrions-nous utiliser créer et copier-tronquer ensemble?

40

The Geek Stuff a un exemple à propos de logrotate. copytruncateva copier et tronquer le fichier journal d'origine.

Alors pourquoi devrions-nous utiliser create? Le fichier journal d'origine n'a pas été supprimé.

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

Une autre question est quelle est l'utilisation de maxage 100? La rotate 4directive supprimera les anciens fichiers journaux après 4 rotations.

Majid Azimi
la source
4
Oui, cela n'a aucun sens et man logrotatedit même: " copytruncate : [...] Lorsque cette option est utilisée, l'option de création n'aura aucun effet, l'ancien fichier journal restant en place."
Ulrich Schwarz
1
maxage 100supprimera les fichiers pivotés lorsqu'ils auront plus de 100 jours et que le fichier actuel subira une rotation; même lorsqu'il 4existe moins de fichiers tournés.
Lutz Prechelt

Réponses:

57

C'est probablement une erreur, cela ne se trouve que dans un exemple de ce tutoriel. Tous les autres exemples ont copytruncatesans createoption. De plus logrotate , la page de manuel indique qu’il sera ignoré :

copytruncate

Tronquez le fichier journal d'origine à la taille zéro après la création d'une copie, au lieu de déplacer l'ancien fichier journal et éventuellement d'en créer un nouveau. Il peut être utilisé lorsqu'un programme ne peut pas être invité à fermer son fichier journal et peut donc continuer à écrire (ajouter) au fichier journal précédent pour toujours. Notez qu'il y a très peu de temps entre la copie du fichier et sa troncature, de sorte que certaines données de journalisation risquent d'être perdues. Lorsque cette option est utilisée, l'option de création n'aura aucun effet, l'ancien fichier journal restant en place.


En ce qui concerne maxage, je pense que cela peut être utile, par exemple, pour les fichiers journaux qui peuvent être vides pendant quelques périodes de rotation (jours / semaines / mois) - si vous utilisez un notifemptyfichier journal vide ne sera pas soumis à une rotation, de sorte que vous pouvez conserver des fichiers trop anciens soumis à une rotation .

Marki555
la source