18 votes

Supprimer des fichiers avec logrotate

Est-il possible de supprimer JUSTEMENT les fichiers journaux d'un répertoire en utilisant logrotate sans les faire tourner ? Nous avons une application qui génère des logs au format suivant : app.log.DD_MM_YYYYY. Je n'ai pas réussi à utiliser logrotate avec la configuration suivante :

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

Le log rotate peut-il faire cela ou dois-je écrire un script et le placer dans le cron ?

Le meilleur, -Iulian

27voto

dips Points 121

Dans ce cas, vous pouvez utiliser postrotate. Dans l'exemple ci-dessous, postrotate supprimera les fichiers qui sont plus vieux que 1 jour après la rotation des journaux.

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

4voto

Olivier69 Points 226

L'objectif de logrotate est de conserver un nombre personnalisé de fichiers journaux à un intervalle de temps personnalisé. J'utiliserais plutôt cron pour votre tâche. Pour en savoir plus sur ce que vous pouvez faire avec logrotate, cliquez ici : http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X