#1 Le 06/07/2006, à 01:03
- Sebseb
Execution d'un script pour configuration d'ip dynamique
Bonjour tout le monde,
Je souhaiterai faire fonctionner un serveur ftp ( vsftpd) et comme l'ip que m'a attribuée mon FAI est dynamique, j'aurai besoin d'actualiser l'ip sur le serveur hébergé par dyndns et changer l'adresse ip d'un fichier de configuration.
Pour cela j'ai créé le script suivant :
#!/bin/sh
USERNAME=Aolean
PASSWORD=*****
HOSTNAME=*****
cd /root/
if [ -f /root/ipcheck.dat ]; then
ipcheck -r checkip.dyndns.org:8245 $USERNAME $PASSWORD $HOSTNAME
else
ipcheck --makedat -r checkip.dyndns.org:8245 $USERNAME $PASSWORD $HOSTNAME
fi
VAR1=`head -n 1 /root/ipcheck.dat`
cp /etc/vsftpd.conf /etc/vsftpdtemp.conf
grep -v pasv_address < /etc/vsftpdtemp.conf > /etc/vsftpd.conf
rm /etc/vsftpdtemp.conf
echo pasv_address=$VAR1 >> /etc/vsftpd.conf
Grosso modo il actualise l'ip dans la première partie, puis modifie vsftpd.conf en supprimant l'option pasv_address=ip et en la remettant avec la nouvelle ip actualisée qu'on a trouvée dans /root/ipcheck.dat
ce script s'appelle dyndns_update et je l'ai mis dans /etc/ppp/ip-up.d/
il fonctionne parfaitement quand je le lance (avec les droits root) mais ne veut pas s'exécuter au démarrage.
Pourtant dans /etc/rc5.d, /etc/init.d/ppp est bien lancé qui invoque lui même pppd, qui appelle à son tour le script /etc/ppp/ip-up qui appelle run-parts sur /etc/ppp/ip-up.d donc ça devrait bien se lancer
Ca fait un bon moment que je suis coincé sur ce problème, et je ne veux pas le lancer bêtement dans les programmes au démarrage, question d'honneur Donc si quelqu'un avait une idée il aurait mes plus sincères remerciments
#2 Le 06/07/2006, à 10:40
- lgmdmdlsr
Re : Execution d'un script pour configuration d'ip dynamique
[...]
ce script s'appelle dyndns_update et je l'ai mis dans /etc/ppp/ip-up.d/
il fonctionne parfaitement quand je le lance (avec les droits root) mais ne veut pas s'exécuter au démarrage.
Si je ne m'abuse dans les scripts de /etc/ppp/ip-up.d/ il faut coder en dur le chemin absolu vers les commandes (comme dans les scripts utilisés par cron).
--
lgmdmdlsr
Hors ligne
#3 Le 06/07/2006, à 12:12
- sebseb
Re : Execution d'un script pour configuration d'ip dynamique
Ah vi tu as raison, les paths sont mis à 0 (ou presque) lors de l'exécution de ces scripts
J'ai donc rajouté
PATH=/sbin:/bin:/usr/sbin:/usr/bin
au début de mon script mais ça ne marche toujours pas, j'ai aussi essayé directement en mettant les chemins sans le path mais ça ne marche pas non plus.
Ce qui est étrange c'est que lorsque je rajoute une commande du type echo 0 > /home/seb/Desktop/marque_script.log dans un fichier qui existe déjà dans ce répertoire, ça ne me crée rien du tout. J'ai l'impression qu'aucun fichier de ce répertoire ne s'exécute, ou en tout cas cette commande-là, même avec le path approprié ne fonctionne pas ???
J'ai pensé que ça pouvait venir de la redirection > mais dans un autre fichier déjà défini par défaut ils l'utilisaient aussi pour créer un fichier.
Snnnirf mon serveur
#4 Le 06/07/2006, à 13:06
- lgmdmdlsr
Re : Execution d'un script pour configuration d'ip dynamique
Et au niveau des journaux, rien ?
Sinon, juste une demande de précision : tu as bien :
1/ une connexion Internet utilisant ppp (modem non routeur utilisant pppoe ou pppoa)
2/ un système sous Ubuntu
?
(je demande cela car tu parles de /etc/rc5.d, or ubuntu utilise le runlevel 2 par défaut)
--
lgmdmdlsr
Hors ligne
#5 Le 07/07/2006, à 20:47
- sebseb
Re : Execution d'un script pour configuration d'ip dynamique
RIen pour les journaux, en fait je n'ai pas réussi à trouver les logs de pppd.
J'ai bien une connexion internet pppoe, un système sous ubuntu et je démarre effectivement en runlevel 2, (je croyais que le runlevel 5 était pour les serveurs graphiques et je suis en graphique, j'ai pas dû tout suivre ) mais le problème reste le même puisqu'on retrouve les mêmes liens dans rc2.d
#6 Le 07/07/2006, à 22:14
- lgmdmdlsr
Re : Execution d'un script pour configuration d'ip dynamique
Pour la journalisation de pppd, voir /var/log/syslog
cat /var/log/syslog | grep ppp
Pour les runlevels, 5 en mode graphique, c'est chez Red Hat/Mandriva.
--
lgmdmdlsr
Hors ligne
#7 Le 07/07/2006, à 22:47
- sebseb
Re : Execution d'un script pour configuration d'ip dynamique
Ben vi, en fait j'ai essayé les logs indiqués dans /etc/syslog.conf mais y'avait rien
Merci pour la précision pour les runlevels 5, je me coucherai moins stupide aujourd'hui
#8 Le 07/07/2006, à 23:29
- sebseb
Re : Execution d'un script pour configuration d'ip dynamique
En fait j'ai l'impression que mon ppp ne se lance pas du tout, j'ai aucune création de fichier quand j'essaie de créer un fichier test dans ppp en rajoutant la ligne :
/bin/echo 0 > /home/seb/test.log
J'y comprends rien ...
#9 Le 08/07/2006, à 11:20
- lgmdmdlsr
Re : Execution d'un script pour configuration d'ip dynamique
Est-ce que la connexion à Internet se lance bien au démarrage ?
Hors ligne
#10 Le 08/07/2006, à 12:07
- Sebseb
Re : Execution d'un script pour configuration d'ip dynamique
Oui
Mais donc si ppp est lancé je ne comprends pas pourquoi ce test ne marche pas.
#11 Le 08/07/2006, à 12:31
- lgmdmdlsr
Re : Execution d'un script pour configuration d'ip dynamique
Ça sent le bricolage par Ubuntu des scripts de démarrage, ça ... (ou pas d'ailleurs).
Dans /etc/init.d/ppp il y a la ligne :
[ -x /usr/sbin/pppd -a -f /etc/ppp/ppp_on_boot ] || exit 0
qui arrête le script /etc/init.d/ppp s'il n'y a pas de fichier /etc/ppp/ppp_on_boot
D'autre part, ce même fichier contient comme commentaire :
# This configuration method is deprecated, please use /etc/network/interfaces.
Il est fort probable que pppd ne soit pas lancé par ce script. Par contre il cite /etc/network/interfaces , or le répertoire /etc/network contient un sous-répertoire nommé
/etc/network/if-up.d , qui pourrait être être la solution au problème.
Autre piste : je remarque l'existance du fichier /etc/ppp/pppoe_on_boot ...
--
lgmdmdlsr
Dernière modification par lgmdmdlsr (Le 08/07/2006, à 12:33)
Hors ligne
#12 Le 08/07/2006, à 14:54
- Sebseb
Re : Execution d'un script pour configuration d'ip dynamique
Problème réglé, merci beaucoup
En fait j'avais déjà essayé dans if-up.d, mais ça ne marchait toujours pas, par contre j'ai lu l'aide de /etc/network/interfaces que tu m'as indiqué dans ppp et j'ai vu que ce fichier était le fichier de configuration pour ifup et ifdown. En exécutant les commandes, j'ai enfin eu un message d'erreur : c'est run-parts qui n'arrive pas à lancer mon script ( exec format error) . J'ai donc fait autrement en rajoutant la ligne up /etc/.../dyndns_update dans /etc/network/interfaces et ça marche
Je me demande simplement pourquoi il y a cette erreur avec run-parts, et pourquoi elle n'apparaît dans auucun fichier de log mais bon ce n'est plus très grave
En tout cas, merci beaucoup tu m'as bien aidé
#13 Le 08/07/2006, à 17:43
- tukuyomi
Re : Execution d'un script pour configuration d'ip dynamique
Juste pour information, il y a ddclient qui permet de faire la même chose, dispo dans les dépots Universe
Hors ligne