Si une configuration de logrotate est spécifiée avec les paramètres "size" et "daily", laquelle est prioritaire? Où est-ce documenté? Je voudrais que ces rotations se produisent comme une opération booléenne OU, c’est-à-dire que si les journaux sont vieux d’un jour, ils sont soumis à une rotation, OU s’ils sont supérieurs à une certaine taille, ils seront également soumis à une rotation. Cependant, logrotate n'utilise actuellement que la directive "size" et semble ignorer la directive "daily". Logrotate est configuré pour fonctionner toutes les heures. OS est dérivé de Linux, Red Hat et Debian.
De plus, je spécifie «quotidien» en premier, puis «taille» à partir du début du fichier. Pas sûr que l'ordre soit important, mais dans tous les cas, il faut d'abord entrer dans le fichier de configuration ...
Merci!
Réponses:
Si la directive size est utilisée, logrotate ignorera les directives quotidienne , hebdomadaire , mensuelle et annuelle . Cela n’est pas clair dans la documentation lorsque vous exécutez la
man logrotate
commande. Toutefois, cela peut être confirmé dans la pratique et est mentionné dans certains billets de blog arbitraires tels que celui-ci .Il existe une directive appelée minsize qui, selon la page de manuel logrotate, est la seule directive de taille pouvant être utilisée conjointement avec les instructions time. Cependant, ce n'est toujours pas ce que vous voulez. En utilisant minsize avec tous les jours , dit essentiellement: tourner les journaux tous les jours, mais seulement quand ils sont au moins #MB taille .
À ce jour, logrotate ne trouve aucun moyen de remplir la condition requise: effectuez une rotation tous les jours, à moins que la taille ne dépasse # Mo. Dans ce cas, effectuez une rotation immédiate . Je ne pense pas que cela soit supporté en utilisant uniquement les directives logrotate. Il serait peut-être possible d'utiliser un script astucieux via les directives de hook de script telles que prérotate , postrotate , firstaction et lastaction .
Mise à jour :
À partir de logrotate 3.8.1,
maxsize
ettimeperiod
sont pris en charge ensemble, ce serait la solution idéale. Voir la réponse à ce message: Comment faire pivoter le journal en fonction d'un intervalle sauf si le journal dépasse une certaine taille?la source
maxsize
ettimeperiod
sont pris en charge. Par serverfault.com/questions/474941/…La première réponse de @egg est, selon mon expérience avec logrotate, pas vraie!
Si quotidien, mensuel, ... viennent en premier et après cette directive de taille , quotidiens, mensuels, ... seront ignorés et que la directive de taille s'appliquera au fichier journal.
De même, lorsque j'utilise pour la première fois la directive de taille, puis les directives quotidiennes, hebdomadaires, mensuelles et annuelles , la directive de taille est ignorée.
la source
Si vous ajoutez Quotidien, il changera de jour en jour même si la condition de taille est remplie. Si vous ajoutez également la condition de taille, vous pouvez obtenir deux rotations en une journée, en fonction de la consignation de la journalisation.
Si Daily commence en premier dans le script, Size ne peut pas être déclenché.
la source
En fait, ma page de manuel sur Red Hat semble être assez claire sur les différences entre taille et taille:
la source