Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 smile

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 smile Donc si quelqu'un avait une idée il aurait mes plus sincères remerciments smile

#2 Le 06/07/2006, à 10:40

lgmdmdlsr

Re : Execution d'un script pour configuration d'ip dynamique

Sebseb a écrit :

[...]
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 smile

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 smile

#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 smile ) 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 sad

Merci pour la précision pour les runlevels 5, je me coucherai moins stupide aujourd'hui wink

#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 ... hmmtongue

#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 smile

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 smile

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 smile

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 smile

En tout cas, merci beaucoup tu m'as bien aidé smile

#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 smile

Hors ligne