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 04/10/2014, à 17:19

JujuLand

[Résolu] Bizarrerie de 14.04

Bonjour,

J'utilise deux scripts qui me permettent de récupérer l'adresse ip locale pour l'un et l'adresse ip publique d'autre part.

myipl

export LOCAL_IP=$(nm-tool | tail -25 | grep "Address:" | grep -v HW | cut -d: -f2 | awk '{print $1}')
echo $LOCAL_IP

myipp

echo $(w3m -dump icanhazip.com)

et pour vérifier
myip

printenv|grep _IP

Pour pouvoir les avoir dans le système, le mets çà dans le .profile

if test -z $LOCAL_IP;then
   export LOCAL_IP=$(myipl)
   export PUBLIC_IP=$(myipp)
   if test -z $LOCAL_IP;then
      sleep 5
      export PUBLIC_IP=$(myipp)
      export LOCAL_IP=$(myipl)
      if test -z $LOCAL_IP;then
         sleep 5
         export PUBLIC_IP=$(myipp)
         export LOCAL_IP=$(myipl)
      fi
   fi
fi

Je répètes, car le wifi tarde souvent à monter (au démarrage de l'ordi, notamment)

Dans une console, si je tapes myip, çà m'affiche les deux adresses.
Enfin, çà, c'était sous 12.04, car avec 14.04, il semble qu'il y ait un problème.

Dans une console, si je tapes myip, je n'ai rien, donc pas de variables *_IP
Si dans cette console, je tapes myipl, il m'affiche bien l'adresse ip locale, mais un myip directement derrière, et pas de trace de la variable.
Cà fait comme si l'export ne fonctionnait pas.

J'y perds le peu de latin que j'avais acquis ...

Ce problème se pose notamment sur un ordi upgradé de 12.04 à 14.04
L'upgrade s'était mal passée
il m'a fallut passer  un apt-get dist-upgrade pour le mettre d'aplomb.
De là à dire que çà vient de là, y'a qu'un pas ...

Vos avis
A+

Dernière modification par JujuLand (Le 07/10/2014, à 12:44)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#2 Le 04/10/2014, à 20:14

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

Salut,

Pour commencer, merci de mettre les commandes et scripts entre balises "code" (obtenues en cliquant sur l'icône bt_pre.png), ça nous aidera à mieux te suivre.

Ensuite, ce que je te proposerais c'est de décomposer ta ligne "nm-cli" et de voir au fur et à mesure ce qui ne va pas dans le retour de la commande.

Déjà, une chose qui me chagrine, c'est ton "tail -25" : si l'adresse IP n'est pas dans les 25 dernières lignes du retour de cette commande, c'est mort.

Donc commence par "nm-tool" pour voir si l'adresse est bien dans son retour (normalement oui).
Puis "nm-tool | tail -25" pour voir si c'est bien dans les 25 dernières lignes.
Ainsi de suite.

Cela dit, moi à ta place je ferais autrement.

1/ ta ligne "nm-tool" est bien trop complexe ;
2/ utilise wget plutôt que w3m pour ne pas avoir à installer ce dernier ;
3/ plutôt que de faire des export, des machin et des trucs, des variables et tout ça, j'utiliserais des alias.

Donc dans .bashrc, je mettrais :

alias myipl="nm-tool | grep '^ *Address' | awk '{ print \$2 }'"
alias myipp="wget -q -O- icanhazip.com"
alias myip="myipl;myipp"

Et voilà. C'est tout.

Hors ligne

#3 Le 04/10/2014, à 21:45

JujuLand

Re : [Résolu] Bizarrerie de 14.04

Salut,

tiramiseb a écrit :

Pour commencer, merci de mettre les commandes et scripts entre balises "code", ça nous aidera à mieux te suivre.

Tu as raison, et j'ai corrigé. Mais tu as suivi pas mal de mes threads, et tu sais très bien que c'est ce que je fais d'habitude.

tiramiseb a écrit :

Déjà, une chose qui me chagrine, c'est ton "tail -25" : si l'adresse IP n'est pas dans les 25 dernières lignes du retour de cette commande, c'est mort.

Faut pas que çà te chagrine, çà marche à tout les coups ...

Mais le problème n'est pas du tout où tu le penses, je me suis probablement mal exprimé.
Ces deux shells fonctionnent parfaitement, même sous 14.04.

Le problème que j'ai, c'est avec le export. L'export ne se fait pas, et dans le .profile tous les tests sur $PUBLIC_IP sont négatifs

Il suffit d'essayer ce shell dans une console pour se rendre compte que la valeur de PUBLIC_IP ou LOCAL_IP est bien rendue, mais que l'export qui est fait depuis le shell est perdu des qu'on sort du shell.
Ceci n'est absolument pas le cas sous 12.04, et j'utilise ces shells plusieurs fois par jour.

Pour m'éviter ces problèmes, je vais certainement remplacer les deux shells par leur contenu dans .profile, de facon à avoir le contenu de mes variables dans toutes les consoles que je pourrais ouvrir après ...

A+

Dernière modification par JujuLand (Le 04/10/2014, à 21:50)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#4 Le 04/10/2014, à 21:49

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

et tu sais très bien que c'est ce que je fais d'habitude.

Désolé je ne regarde pas les pseudo des gens auxquels je réponds, je ne fais pas souvent le lien entre différentes discussions smile

Un truc qui me démange dans ton dernier message... on écrit shellscript, pas shell. Bash, c'est un shell.

l'export qui est fait depuis le shell est perdu des qu'on sort du shell.

Oui, un "export" n'a jamais eu une portée plus étendue que le shell dans lequel il est exécuté et ses enfants.

Hors ligne

#5 Le 04/10/2014, à 21:53

JujuLand

Re : [Résolu] Bizarrerie de 14.04

JujuLand a écrit :

l'export qui est fait depuis le shell est perdu des qu'on sort du shell.

tiramiseb a écrit :

Oui, un "export" n'a jamais eu une portée plus étendue que le shell dans lequel il est exécuté et ses enfants.

Alors il faudra que tu m'expliques pourquoi çà fonctionnait tel quel sous 12.04 ...

A+

Dernière modification par JujuLand (Le 04/10/2014, à 21:53)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#6 Le 04/10/2014, à 21:57

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

Je ne sais pas pourquoi ça semblait fonctionner chez toi.
Par contre je sais parfaitement comment ça fonctionne de manière générale.

Et je ne comprends pas pourquoi tu parles d'exécuter un shellscript et d'en obtenir les exports ailleurs, alors que dans ton premier message tu parles de ".profile", pas d'un script...

Hors ligne

#7 Le 04/10/2014, à 21:57

JujuLand

Re : [Résolu] Bizarrerie de 14.04

Je viens de faire un test en 12.04 dans une console, et çà ne fonctionne pas. Tu avais donc raison pour une console, mais je maintiens que ça fonctionnait depuis le .profile, qui est un mécanisme un peu plus particulier, car probablement fait au niveau de la session.

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#8 Le 04/10/2014, à 21:59

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

Le ".profile" ce n'est pas un script, ce sont des commandes incluses dans le shell courant lors de son ouverture... ce n'est pas réellement particulier smile

Hors ligne

#9 Le 04/10/2014, à 22:01

JujuLand

Re : [Résolu] Bizarrerie de 14.04

tiramiseb a écrit :

Et je ne comprends pas pourquoi tu parles d'exécuter un shellscript et d'en obtenir les exports ailleurs, alors que dans ton premier message tu parles de ".profile", pas d'un script...

Effectivement, je mélange un peu deux choses différentes, mais dans le .profile, on peut lui donner le nom qu'on veut, c'est bien un script qui est exécuté lors de l'ouverture de session (au sens large, y compris les connexions ssh.
Et là dedans, j'utilise bien deux scripts myipl et myipp. Et les exports fonctionnent (sous 12.04) comme je le souhaite ...

A+

Dernière modification par JujuLand (Le 04/10/2014, à 22:02)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#10 Le 04/10/2014, à 22:02

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

le .profile, on peut lui donner le nom qu'on veut, c'est bien un script qui est exécuté lors de l'ouverture de session

Non, ce n'est pas un script exécuté.
C'est une liste de commandes exécutées dans le shell courant.

Hors ligne

#11 Le 04/10/2014, à 22:11

JujuLand

Re : [Résolu] Bizarrerie de 14.04

Bon, effectivement, je n'emploie probablement pas les bons termes, shell, scripts, mais dans la finalité, la question que je me pose, c'est pourquoi çà fonctionne dans le .profile pour 12.04, et pas 14.04 ...

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#12 Le 04/10/2014, à 22:12

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

1/ regarde si ça marche mieux dans .bashrc au lieu de .profile
2/ pourquoi ne pas simplifier la chose, cf l'approche que je propose ?

Hors ligne

#13 Le 04/10/2014, à 22:26

JujuLand

Re : [Résolu] Bizarrerie de 14.04

Je viens de faire un essai en remplaçant le nom de mes scripts myipl et myipp par les commandes qu'ils exécutent (donc pas d'environnement perdu au retour d'un script), et l'export ne fonctionne pas ...

Pourrais-tu essayer pour me confirmer, ou m'infirmer que l'export fonctionne depuis le .profie ?

Merci
A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#14 Le 04/10/2014, à 22:31

JujuLand

Re : [Résolu] Bizarrerie de 14.04

Quand je fais la commande dans une console, sans passer par le shell, l'export se fait bien.

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#15 Le 04/10/2014, à 22:38

JujuLand

Re : [Résolu] Bizarrerie de 14.04

Bon, j'ai remplacé ma commande myip par la tienne, plus simple.
Pour myipp, les deux se valent, la mienne ne necessitant que l'installation de w3m, ce qui est déjà fait depuis pas mal de temps.

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#16 Le 04/10/2014, à 23:01

JujuLand

Re : [Résolu] Bizarrerie de 14.04

J'ai d'autres scripts dans le .profile, et l'export se passe bien.

J'en viens à me demander si çà ne vient pas du fait que ces commandes touchent au réseau, et que celui-ci ne serait pas encore disponible au moment de l'exécution du .profile.

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#17 Le 05/10/2014, à 15:25

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

J'en viens à me demander si çà ne vient pas du fait que ces commandes touchent au réseau, et que celui-ci ne serait pas encore disponible au moment de l'exécution du .profile.

Peut-être.

As-tu essayé ma proposition ? Ne te convient-elle pas ?

Hors ligne

#18 Le 05/10/2014, à 22:44

JujuLand

Re : [Résolu] Bizarrerie de 14.04

Je suppose que c'est de mettre les alias dans bashrc pour remplacer les scripts, et ensuite d'appeler les alias dans le .profile, non ?

Je n'ai pas fait le test de bashrc, car je n'ai plus l'ordi sous la main (c'est celui de ma fille), mais j'essaierai probablement des mardi avec un autre ordi ou j'ai eu des problèmes avec ssh, mais ou je n'avais pas creusé comme çà.

Par contre, j'ai remplacé les appels aux scripts par leurs contenus, et l'export ne se fait pas ..., je ne pense pas, à priori qu'il y ait une grosse différence avec les alias, mais j'essaierai ...

Un autre essai que je pensais faire est de les mettre dans les applications au démarrage, mais j'ai bien peur que l'export ne fonctionne pas ...

Enfin, un autre test serait peut-être de mettre une tempo bien plus grande entre les tests, afin de voir si le réseau aura été disponible (en espérant que la montée du réseau ne se fasse pas après le .profile ...

Merci
A+

Dernière modification par JujuLand (Le 05/10/2014, à 22:46)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#19 Le 06/10/2014, à 08:53

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

Je suppose que c'est de mettre les alias dans bashrc pour remplacer les scripts, et ensuite d'appeler les alias dans le .profile, non ?

Non.

Tu remplaces TOUT ton machin compliqué par les trois aliases que je t'ai donnés :

alias myipl="nm-tool | grep '^ *Address' | awk '{ print \$2 }'"
alias myipp="wget -q -O- icanhazip.com"
alias myip="myipl;myipp"

C'est .profile qui appelle .bashrc (sauf si tu as enlevé la partie qui fait ça).
Je propose .bashrc par habitude et parce que je ne suis pas sûr que cette syntaxe de création d'aliases fonctionne sur n'importe quel shell (csh, ksh, zsh...). Au moins, avec .bashrc, on sait que ça ne s'active que pour Bash. Mais si tu veux tu peux mettre ces trois lignes dans ".profile".

Avec ces trois lignes :
- quand tu tapes myipl, ça t'affiche l'adresse IP locale courante ;
- quand tu tapes myipp, ça t'affiche l'adresse IP publique courante ;
- quand tu tapes mypi, ça t'affiche les deux.

C'est l'approche la plus simple et la plus fiable.
En dehors de la complexité inutile de ce que tu as fait (qui induit bien des incompréhensions...), tu as un gros souci : si l'adresse IP change après le changement du .profile, tu n'en es pas informé.

Hors ligne

#20 Le 06/10/2014, à 09:41

JujuLand

Re : [Résolu] Bizarrerie de 14.04

C'est .profile qui appelle .bashrc (sauf si tu as enlevé la partie qui fait ça).

Je le dis différemment, mais c'est pareil.

complexité inutile de ce que tu as fait (qui induit bien des incompréhensions...)

J'ai déjà remplacé le contenu de myipl par le tien.
Les seules différences tiennent dans l'utilisation de w3m (pas plus compliqué que wget à mon avis), et le myip qui se contente maintenant d'exécuter les deux commandes au lieu de faire un printenv, guère plus compliqué ...

si l'adresse IP change après le changement du .profile, tu n'en es pas informé.

Y'a pas de parade à çà, excepter d'executer çà dans le cron, mais de toute façon, l'export ne fonctionnera pas.

Bon, je n'ai plus la machine en main, vu que ma fille repart ce matin, mais j'essaierai mardi sur une autre machine en 14.04, mais qui est par contre une install 14.04 fraîche, pas un upgrade rattrapé par la manche ...

On verra bien si le problème se reproduit, et s'il est là, si çà résout mon problem d'export.

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#21 Le 06/10/2014, à 09:45

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

Y'a pas de parade à çà, excepter d'executer çà dans le cron, mais de toute façon, l'export ne fonctionnera pas.

Bien sûr que si ! Utiliser exclusivement mes aliases !
À chaque exécution, ça exécutera la commande et te donnera le résultat en live.

Un alias, ce n'est pas une variable, c'est un raccourci pour une commande complexe. Quand tu exécutes l'alias, ça exécute la commande. Quand tu réexécutes l'alias, ça réexécute la commande.

Hors ligne

#22 Le 06/10/2014, à 10:19

JujuLand

Re : [Résolu] Bizarrerie de 14.04

À chaque exécution, ça exécutera la commande et te donnera le résultat en live.

Un alias, ce n'est pas une variable, c'est un raccourci pour une commande complexe. Quand tu exécutes l'alias, ça exécute la commande. Quand tu réexécutes l'alias, ça réexécute la commande.

Le problème n'est pas là ... mes shells faisant la même chose.
Le problème est l'export de ces valeurs, notamment dans le .profile, et là, ce n'est pas lié à l'export si on utilise les commandes ou l'alias dans le .profile, mais probablement lié à la non disponibilité du réseau lors de l'exécution des commandes dans le .profile.

Question subsidiaire :
Si j'initialise les variables avec une valeur bidon, ai-je possibilité de modifier ces valeurs (export) après le .profile ?

A+

Dernière modification par JujuLand (Le 06/10/2014, à 10:22)


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#23 Le 06/10/2014, à 10:21

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

Le problème est l'export de ces valeurs, notamment dans le .profile

Tu n'as toujours pas dit pourquoi tu en as besoin dans le .profile.
Quel est ton réel besoin, pourquoi insistes-tu tellement sur le .profil ?

J'ai vraiment l'impression que tu te construis des trucs hyper compliqués, pour un besoin qui est peut-être hyper simple.

Hors ligne

#24 Le 06/10/2014, à 10:24

JujuLand

Re : [Résolu] Bizarrerie de 14.04

Pour envoyer automatiquement un mail avec les adresses ip lors de l'ouverture de la session.

A+


Xubuntu 16.04 > Dell DM061 (2007) + Dell Inspiron 531 (2008)
Xubuntu 16.04 > Asus X51L (2009) + MSI GX723 (2009)
Xubuntu 22.04 > HP 15BA048NF (2018)

Hors ligne

#25 Le 06/10/2014, à 10:29

tiramiseb

Re : [Résolu] Bizarrerie de 14.04

Houla, tout ça juste pour envoyer un e-mail lors de l'ouverture de la session !?

Pourquoi ne pas simplement faire un truc de ce genre...


1/ script "/opt/envoi_adresses_ip.sh" :

#!/bin/sh

while [ "$myipl" = "" ]
do
  myipl="nm-tool | grep '^ *Address' | awk '{ print \$2 }'"
done
myipp="wget -q -O- icanhazip.com"

mail -s "Adresses IP" destin@taire.com << EOF
Les adresses IP sont :

Adresse locale : $myipl
Adresse publique : $myipp
EOF

2/ fichier /home/bidule/.config/autostart/adresses_ip.desktop :

[Desktop Entry]
Name=Adresses IP
Exec=/opt/envoi_adresses_ip.sh
Type=Application

Hors ligne