[Linux-bruxelles] Comment utiliser lynx pour envoyer un get sans qu'il ne s'ouvre en terminal

Philippe Teuwen philippe.teuwen at linuxbe.org
Mar 2 Avr 19:18:31 CEST 2002


Philippe Beaujean wrote:
> Voici le script (les étoiles sont mes username et password, désole ;) ) .
> Il fonctionne, bien que je pense qu'il ne soit pas des plus orthodoxes.
> Toute amélioration ou toute suggestion est la bienvenue (il faut bien
> que j'apprenne). Particulièrement en ce qui concerne les échanges via un
> protocole http(s).
> 
> Merci
> 
> Cordialement,
> Philippe.
> 

Juste un p'tit commentaire: apparemment tu envoies systématiquement
l'IP obtenue chez dyndns même si elle n'a pas changé (mais tu la gardes
quand même dans un fichier, bizarre).
Du coup, tu ne peux pas le faire trop souvent (genre cron ttes les heures?)
Je mets le script que j'avais écrit pour réaliser exactement la même
chose (mais chez ZoneEdit et avec un modem ADSL en routeur)
Il ne demande la mise à jour que s'il y a lieu, il produit un log
et éventuellement peut être verbeux (variable DEBUG)
Le script est appelé ttes les 5 mins -> décrochage limité
Une caractéristique de ZoneEdit, c'est que tu n'as pas besoin
d'envoyer l'IP, il prend l'IP de la requête donc si on veut juste
rafraîchir ttes les heures, suffit d'un wget dans son cron et c'est tout!
Phil (l'autre)

Le log ressemble à ça:

Thu Mar 28 08:35:01 CET 2002
<SUCCESS CODE="200" TEXT="Update succeeded." ZONE="teuwen.org" 
HOST="dyn.teuwen.org" IP="217.136.20.195">

Sun Mar 31 08:45:01 CEST 2002
<SUCCESS CODE="200" TEXT="Update succeeded." ZONE="teuwen.org" 
HOST="dyn.teuwen.org" IP="217.136.9.100">

Mon Apr  1 20:45:01 CEST 2002
<SUCCESS CODE="200" TEXT="Update succeeded." ZONE="teuwen.org" 
HOST="dyn.teuwen.org" IP="217.136.10.184">


Gaffe aux retours de ligne dans le script à cause du mail!
---------------- début du script ----------------
#!/bin/bash

LASTIPFILE="/var/log/lastip.log"
LOGFILE="/var/log/ippub.log"
DEBUG="true"

read_ippub () {
     NEWIP=$(lynx http://10.0.0.138/cgi/router/index.htm -dump|gawk '$1 
~ /Skynet/{print $2}')
}
update_ippub () {
     MSG=$(wget -q --output-document=- --http-user=*** --http-passwd=*** 
'http://dynamic.zoneedit.com/auth/dynamic.html?host=dyn.teuwen.org')
}


read_ippub                      # Lit l'IP courante
$DEBUG && echo "Newip: $NEWIP"
                                 # LASTIPFILE doit exister et contenir qqch
if [ ! -s $LASTIPFILE ] || {
   . $LASTIPFILE
   $DEBUG && echo "Lastip: $LASTIP"
   [ "$NEWIP" != "$LASTIP" ]     # ce qqch doit être égal à l'IP courante
   }
then                            # sinon
   date >> $LOGFILE
   update_ippub                  # met à jour ZoneEdit
   $DEBUG && echo "Message: $MSG"
   echo "$MSG" >> $LOGFILE
   echo >> $LOGFILE
   if echo "$MSG" | grep "SUCCESS"
   then
     $DEBUG && echo "Update of the IP info..."
     echo "LASTIP=$NEWIP" > $LASTIPFILE
   else
     $DEBUG && echo "There was an error, I will not touch $LASTIPFILE"
   fi
fi







Plus d'informations sur la liste de diffusion Linux-bruxelles