Auteur: Pierre Pronchery Date: À: guilde Sujet: Re: comment jouer avec /var/log/messages ?
On Tue, Jun 04, 2002 at 02:46:42PM +0200, Stephane Driussi wrote: > Bonjour a tous,
>
> je voudrais lire mon /var/log/messages au fur et a mesure que celui-ci
> grandi et lorsque une chaine bien specifie apparait faire une action
> particuliere. Ce que je ne veux pas c'est relire le /var/log/messages a
> chaque fois mais seulement ce qui est nouveau.
>
> J'ai commence par faire les operations suivantes:
> mkfifo messages.fifo
> tail -f messages > messages.fifo &
>
> Puis, periodiquement, je viens lire messages.fifo avec le script suivant
> #!/bin/sh
> NEW=`grep "IP Change" messages.fifo`
> if [ ! $NEW = "" ]; then
> echo "coucou j'ai change d'IP"
> fi
>
> mais grep ne me rends pas la main. Comment faire pour lire un pipe et
> sortir lorsque le buffer est vide ?
>
> Stephane
>
> PS: Pour info, le but de se prog est de detecter le changement d'IP de
> mon routeur adsl pour mettre a jour dyndns.org Dans ce cas, c'est dans tes scripts de déconnection/reconnection que tu
dois recontacter dyndns.org .
Il y a même plusieurs solutions: le client peut tourner en démon, et
contacter dyndns ttes les 5 minutes par exemple si il trouve que tu
change d'IP, ou alors via ces scripts. Sous debian, il suffit de
rajouter un fichier exécutable dans /etc/ppp/ip-up.d contenant la
commande adéquate. (un pote à moi a ddclient)