Le Thursday 26 August 2010 17:29:53 Tzacos, vous avez écrit :
[...]
> Il est ecrit en quoi? Je peux peut etre essayer de le modifier pour en
> faire un daemon, car en cron cest pas suffisant, la frequence est trop
> elevée pour etre dans un cron (plusieurs fois par minutes)
>
> Mais oui, je suis interessé, ca me servira peut etre de base.
C'est du Bash.
Le premier script compose et envoi la page html sur le site distant.
Le second détecte le changement d'ip. Un fichier temporaire est créé.
Pour une meilleure lisibilité, je les ai séparés avec une suite de $$$$$$$ et
j'ai enfreint la règle de la liste qui veut une césure à 78 caractères/ligne.
La dernière partie, c'est juste un fichier qui contient la précédente ip.
$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$monip2ftp.sh
$$$$$$$$$$$$$$$$$$$$$
#!/bin/sh
# Envoie d'un fichier contenant une ip par ftp sur un site distant
# prérequis :
# lynx installé
# ftp installé
# reste à faire et bug à corriger :
# fin de programme : echo ne marche plus après le bye de ftp
# comment écrire le fichier .netrc sous /home/user/.netrc
# soit dans sa variable déclarée au début du programme
# soit dans son traitement dans la rubrique "installer obligatoirement le
fichier"
# Les variables utilisées :
horodatage=""
login="mon-login-ftp"
machine="mon-site-distant.com"
netrc="netrc"
pagehtml="ma-page.html"
password="le-password-ftp"
# On met en forme la date en associant les différents formats
# pour les rendre lisibles par un humain :
annee=$(date +%Y)
mois=$(date +%m)
jour=$(date +%d)
heure=$(date +%H)
minute=$(date +%M)
horodatage=$jour"-"$mois"-"$annee" "$heure":"$minute
# On installe obligatoirement le fichier .netrc
# dans le /home/user avec des droits 600
# sinon ftp ne peut pas uploader un fichier :
echo "machine "$machine > $netrc
echo "login "$login >> $netrc
echo "password "$password >> $netrc
chmod 600 $netrc
# Pour présenter un lien :
# - en http
# - en https
# - afficher ip seule
# on va chercher l'ip actuelle
# on met cette ip dans une page html que l'on créé
# on ajoute un horodatage dans cette page.
# Cette page contenant une ip horodatée est destinée à
# être envoyée sur le site distant par ftp
# de façon automatisée par une tâche dans la crontab :
echo "<head>" > $pagehtml
echo "<title>$horodatage</title>" >> $pagehtml
echo "</head>" >> $pagehtml
echo "<body>" >> $pagehtml
lynx -dump checkip.dyndns.org | awk '{ if (NF) print "<A
href=\"http://"$4"/phpcompta\">PhpCompta</A><br>" }' >> $pagehtml
lynx -dump checkip.dyndns.org | awk '{ if (NF) print "<A
href=\"https://"$4"\">https</A><br>" }' >> $pagehtml
lynx -dump checkip.dyndns.org | awk '{ if (NF) print $4 }' >> $pagehtml
echo "</body>" >> $pagehtml
echo "</html>" >> $pagehtml
# On met la page sur le site distant par ftp
# Le fichier .netrc doit se trouver dans /home/user/.netrc :
ftp <<**
open $machine
cd /www
bin
put $pagehtml
bye
# On supprime les fichiers devenus inutiles :
echo "la commande echo ne marche plus après le bye précédent"
echo $pagehtml
# rm $pagehtml
# rm $netrc
exit 0
$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$monip.sh
$$$$$$$$$$$$$$$$$$$$$
#!/bin/sh
# =================================================================
# Envoyer par e-mail une ip de FAI récupérée depuis la passerelle :
# =================================================================
# On renseigne obligatoirement ces deux paramètres :
# 1) Adresse vers laquelle on envoie le résultat
victime="[email protected]"
# 2) Préfixe souhaité pour les noms des fichiers
prefix="monip_"
# On ne fait rien si l'ip n'a pas changé
ip_nechangepas()
{
echo "L'ip ne change pas"
rm $prefix"newip.txt"
}
# On envoie le résultat si l'ip change
ip_change()
{
echo "L'ip change"
mv $prefix"newip.txt" $prefix"oldip.txt"
echo " "$newip | mail -s "[IP]"$newip $victime
echo "IP envoyée à la victime"
}
# On teste éventuellement l'existence du fichier contenant l'ancienne ip
if test -f $prefix"oldip.txt"
then echo "---> Le fichier de l'ancienne ip existe"
else echo "---> Le fichier de l'ancienne ip n'existe pas"
fi
# On récupère l'ancienne ip
read oldip < $prefix"oldip.txt"
echo "---> Ancienne ip :" $oldip
# On récupère la nouvelle ip
lynx -dump checkip.dyndns.org | awk '{ if (NF) print $4}' >
$prefix"newip.txt"
read newip < $prefix"newip.txt"
echo "---> Nouvelle ip :" $newip
# On compare les deux ip
if test $newip = $oldip
then ip_nechangepas
else ip_change
fi
$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$monip_oldip.txt
$$$$$$$$$$$$$$$$$$$$$
123.123.123.123
_________________________________
Linux mailing list
[email protected]
http://lists.parinux.org/mailman/listinfo/linux