Quelqu'un m'a simplement demandé «combien de temps devrions-nous conserver les journaux pour notre application», et ma réponse a été «jusqu'à ce que le disque soit plein» car il n'y a aucune raison de les jeter à part le manque d'espace.
Cependant, logrotate standard veut que nous spécifiions une période spécifique + nombre de rotations. Y a-t-il quelque chose de similaire qui nous permettrait de dire "tourner quotidiennement et garder autant d'historique que vous le souhaitez jusqu'à ce qu'il n'y ait que 5% d'espace libre"?
La plateforme est Redhat Linux.
Réponses:
Vous pouvez peut-être utiliser les directives firstaction ou lastaction pour appeler un script shell qui teste l'espace libre sur le disque, puis exécuter une suppression sur les fichiers les plus anciens.
Mise à jour:
Voici un article Stackoverflow sur le type de script que vous pouvez exécuter:
/programming/7523059/remove-oldest-file-in-repository
la source
logrotate lui-même n'a pas une telle option. Vous pouvez ajouter un script cron qui trouve le journal le plus ancien à supprimer chaque fois que l'espace libre tombe en dessous de vos critères. Vous pouvez également effectuer une autre validation. Cependant, obtenir un disque trop plein tout le temps n'est pas une bonne idée car le système ne sera pas en mesure de créer de gros fichiers temporaires et pourrait provoquer des échecs d'application.
la source
Je voulais juste souligner qu'il y a des cas où vous ne voulez pas que vos journaux remplissent tout l'espace disque disponible. J'ai traité avec plusieurs hôtes avec des répertoires / var provisionnés et il était crucial de conserver les journaux à une certaine taille. Nous avons utilisé un travail de copains en conjonction avec logrorate pour réduire la taille. Quelque chose de similaire pourrait être utilisé dans votre environnement, bien qu'un serveur de journalisation central comme splunk ou syslog-ng serait probablement une meilleure option.
la source
Comme l'a suggéré @cjc, vous pouvez utiliser firstaction. Voir cet exemple:
Dans cet exemple, vous avez supprimé les fichiers de plus de 1 Go de la partition / mnt / user si l'espace utilisé par la partition est supérieur à 50% .
la source