Problème Script

Bonjour à tous,
je viens de me coder un petit script que je lance au démarrage de Debian sur un serveur en local.

iplocale=$(ifconfig wlan0 | grep "inet adr" | cut -f2 -d: | awk '{print $1}')
ippublic=$(wget -qO- http://62.210.182.92/ip_api.php)

wget --no-check-certificate -qO- "https://smsapi.free-mobile.fr/sendmsg?msg=Message+du+raspberry+pi+%3A%0D%0AMon+ip+locale+est+$iplocale%0D%0AMon+ip+externe+est+$ippublic%0D%0A%0D%0A&pass=monpass&user=monuser"

En gros le script cherche d’abord l’ip locale de la machine et ensuite l’ip externe, le tout est envoyé a l’api d’envoi de sms de free.
Le script tourne bien en le lançant manuellement (via ssh) mais lorsque il se lance au démarrage, le message est bien envoyé avec l’ip externe mais pas l’ip locale de la machine…

Pouvez vous m’aider à comprendre d’où vient le problème ?

Merci d’avance :wink:

tu devrais essayer en mettant les chemins complets de tes binaires.
ex :
ifconfig : /sbin/ifconfig
grep : /bin/grep
cut : /usr/bin/cut

Dans une session hors session ouvert (apres avoir tapé user + mot de passe), il se peut que les path ne se chargent pas (dans un cron c’est le cas).
Il faut donc soit entrer en dur les chemins complets soit les faire détecter (ex : VAR_IFCONFIG=$(/usr/bin/which ifconfig) ). Tu peux aussi faire un export des paths.

Je vais essayer merci.

Non cela ne fonctionne toujours pas …

ton ip locale est détectée avec ifconfig, qui n’est vu qu’en root. ton script se lance t’il bien en root ?

[quote=“centipede”]Bonjour à tous,
je viens de me coder un petit script que je lance au démarrage de Debian sur un serveur en local.
[/quote]
À quel moment exactement du démarrage? (pour trouver une piste)

Oui mon script se lance aussi bien en root qu’avec l’utilisateur.

[quote=“thuban”]
À quel moment exactement du démarrage? (pour trouver une piste)[/quote]
Il se lance en même temps que le système, après la connexion wifi. (Il est dans /etc/init.d)

le fait qu’il soit dans init.d ne dit pas à quel moment il démarre :

Mets le voir dans le rc.local pour voir

C’est bon j’ai réussi ! :slightly_smiling:

J’ai remplacé la ligne

iplocale=$(ifconfig wlan0 | grep "inet adr" | cut -f2 -d: | awk '{print $1}')

par

iplocale=$(hostname -I)