Re: Rotation des logs
Le Friday 04 September 2009 09:20:49 Alain JUPIN, vous avez écrit :
> Le jeudi 03 septembre 2009 à 12:24 +0200, Olivier a écrit :
> > Bonjour,
> >
> > Le document http://www.debian-administration.org/articles/117 donne
> > l'exemple d'Apache.
> >
> > Il semble que certaines applications ont besoin d'être redémarrées (ou
> > au minimum, d'être informées de l'évènement) après une rotation des
> > logs et d'autres pas.
> > Cette observation empirique personnelle est-elle exacte ?
> >
> > Si oui, comme le mécanisme de rotation est externe aux applications,
> > comment expliquer cette différence ?
> >
> > Slts
>
> Pour ma part, pour la rotation des logs j'utilise un script perso (car
> je n'aime pas la methode de logrotate)
>
> Avant de faire la rotation, je vérifie si le fichier est ouvert par :
> lsof /var/log/nomdulog
>
> Si le fichier est ouvert, juste après la rotation, je redémarre le
> service.
> Du coup, plus besoin d'indiquer si il faut redemarrer ou pas le service.
>
>
> --
> Alain
> Les pieds sur Terre, la tête dans les étoiles
Salut;
Je me permet simplement d'ajouter que "logrotate" est conçu pour faciliter
l'administration surtout avec ses configurations séparées par service. Il est
alors possible d'affiner nos critères de rotation.
Par exemple, pour un service Web:
# /etc/logrotate.d/lighttpd:
/var/log/lighttpd/*.log {
errors webmaster
compress
daily
create 644 lighttpd lighttpd
prerotate
# Cette ligne est exécutée avant permutation du journal
/etc/lighttpd/scripts/update_stats.sh > /dev/null
endscript
postrotate
# Ces lignes sont exécutées après permutation du journal
if [ -f /var/run/lighttpd.pid ]; then
/etc/init.d/lighttpd restart > /dev/null
fi
endscript
}
Dans cette exemple, il est demandé d'exécuter du code avant rotation du
journal, et de même qu'après rotation. Il est alors tout à fait possible
d'ajouter une/des condition(s) pour vérifier si il est vraiement pertinent de
redémarre le service, avec par exemple la méthode d'Alain en
combinant "lsof".
J'oubliai, "logrotate" est lancé par un travail "cron", ce n'est pas un
service de type deamon ou lancé en tâche de fond persistent.
@+
--
(o_
(/)_
S e r g e
Reply to: