Supprimer des fichiers avec logrotate

13

Est-il possible JUSTE de supprimer les fichiers journaux dans un répertoire en utilisant logrotate sans les faire tourner? Nous avons une application qui génère des journaux au format suivant: app.log.DD_MM_YYYY. Je ne réussis pas avec logrotate ayant la configuration suivante:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

Le journal peut-il faire cette rotation ou dois-je simplement écrire un script et le placer dans cron?

Meilleur, -Iulien

Iulian
la source
Si vous n'avez pas besoin de ces journaux, pourquoi ne pas désactiver la fonction de journalisation sur votre application?
Deeh
1
Je suis désolé mais je ne peux pas compter cela comme une réponse Deeh. Pour nourrir votre curiosité, nous avons besoin de ces journaux pour différentes opérations comme le débogage, nous ne voulons tout simplement pas les laisser là pourrir.
Iulian

Réponses:

16

Dans ce cas, vous pouvez utiliser le postrotate. Dans l'exemple ci-dessous, postrotate supprimera les fichiers plus anciens qu'un jour après la rotation des journaux, n'hésitez pas à le modifier en fonction de vos besoins.

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}
Deeh
la source
3

Le but de logrotate est de conserver un nombre personnalisé de fichiers journaux sur un intervalle de temps personnalisé. J'utiliserais cron pour votre tâche. Plus d'informations sur ce que vous pouvez faire avec logrotate ici: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet

Alex
la source
2
Veuillez ne pas publier de réponses de lien uniquement pour éviter la pourriture des liens. Au lieu de cela, ajoutez les informations les plus pertinentes du lien à votre réponse ou publiez le lien sous forme de commentaire au lieu d'une réponse. Consultez cet article du centre d'aide pour plus d'informations.
Sven