Re: supprimer fichiers logs auto
Bulot Grégory a écrit, dimanche 3 juin 2007, à 14:30 :
> Le dimanche 3 juin 2007 13:07, Benjamin Lannoy a écrit :
[...]
> > Bonjour !
bonjour,
> > [...]
> > @monthly rm /var/log/*.gz
> >
> > Ça répond à ta demande ?
> euh, la on supprime tout, tous les mois ....
>
> @monthly find /var/log/* -type f -mtime +30 -exec rm -i '{}' ';'
>
> bien que je ferais plutôt un shell dans /root/shells/PurgeMensuelle (pas de
> point dans le nom, sinon ça s'exécute pas dans le /etc/cron.monthly ....)
> avec ça :
>
> | #!/bin/sh
> | find /var/log/* -type f -mtime +30 -exec rm -i '{}' ';'
Heu, l'option « -i » de rm est interactive...
> Puis dans /etc/cron.monthly : ln -s /root/shells/PurgeMensuelle.sh
... sans « .sh » ?
La commande find est récursive par défaut, donc (sans répertoires cachés
dans /var/log/) « find /var/log/ ... » revient au même --- d'autant que
la majeure partie du développement de /var/log/* est formée de noms de
fichiers ordinaires.
On peut aussi lancer moins de processus qu'avec -exec :
find /var/log/ -type f -name '*log*.gz' -mtime +31 -print0 | \
xargs --0 rm -f
(la précaution -print0 | ... -0 est sans doute inutile ici). Pour ne
pas trop dépasser le délai mensuel, je ferais plutôt une purge
hebdomadaire.
Par ailleurs, il est sans doute préférable de réduire le nombre des logs
en amont, cf. man logrotate : les exemples donnés,
rotate 5
weekly
et
rotate 2
monthly
devraient convenir à peu près.
--
Jacques L'helgoualc'h
Reply to: