J'ai un répertoire avec de nombreux fichiers journaux, que j'aimerais faire tourner quotidiennement. Pour des raisons d'organisation, j'aimerais pouvoir déplacer les journaux tournés dans un autre répertoire (ou sous-répertoire) nommé par date, en conservant la dernière semaine de journaux.
Je peux utiliser logrotate pour réaliser la plupart de ces opérations en itinérant les fichiers sur place ou même en les déplaçant vers un seul répertoire différent à l'aide de la olddir
directive, mais j'ai du mal à trouver une solution pour créer des sous-répertoires individuels par rotation. Comment puis-je atteindre cet objectif?:
Logs to rotate: /var/log/example/*
Desired target directories (keeping a week):
/var/log/example/20121006/*
[ ... ]
/var/log/example/20121012/*
postrotate
cela fera l'affaire. La seule chose que je dois ajouter est de purger les anciens répertoires qui dépassent un certain nombre ou qui dépassent une certaine date.find | xargs
commande doit supprimer tous les sous-répertoires immédiats de la/var/log/example
dernière modification effectuée il y a plus de 7 jours.Vous avez une
olddir
directive que vous pouvez utiliser dans le fichier de configuration.De la documentation:
Référence : https://manpages.debian.org/jessie/logrotate/logrotate.8.en.html
la source