[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: