Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1290 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  valeur d'une variable à distance par ssh

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

valeur d'une variable à distance par ssh

n°1431989
cyberfred
Posté le 28-03-2019 à 19:45:41  profilanswer
 

Hello les amis
 
voilà je suis confronté à un petit souci et j'avoue que j'ai un peu de mal à le résoudre :
j'aimerai à partir  de mon serveur principal lire une variable "toto" qui est sur plusieurs autres serveurs 1 à x  
la boucle ne me pose évidemment pas de soucis , non , le problème c'est plutôt le SSH pour aller lire cette variable sur les autres serveurs :
 
à partir de mon serveur principal  ,je fais donc un  :  

Code :
  1. ssh user@serveurX 'echo $toto'


sauf qu'évidemment le echo ne renvoie rien.
je pensais à tord que la simple quote suffirait  , car avec une double quote , le $toto est bien évidemment interprété avant l'envoi de la commande par ssh (ce que je ne souhaite pas bien entendu).
du coup , je vois pas trop comment faire , sachant bien évidemment que la variable toto n'est pas connu de mon serveur principal (et qu'elle peut être différente suivants les serveurs , d'où le fait que je veuille récupérer dans un petit script toutes les valeur de cette variable en fonction des différents serveurs ;) mais comme je l'ai déjà dit la boucle ne me pose pas de souci , j'aimerai juste récupérer à distance la valeur de cette variable sur chacun de mes serveurs.
 
pour info , sur tous les autres serveurs , la variable toto est défini dans le env de l'utilisateur :jap:
si je me connecte de façon classique sur un des serveurs : ssh user@serveurX puis une fois loggé , si je fais echo $toto , le echo me renvoie bien la valeur de toto.
 
si vous avez une idée , merci par avance.

Message cité 1 fois
Message édité par cyberfred le 28-03-2019 à 19:58:44
mood
Publicité
Posté le 28-03-2019 à 19:45:41  profilanswer
 

n°1431995
kaari
Fuck Yeah !
Posté le 28-03-2019 à 21:08:42  profilanswer
 

cyberfred a écrit :

Hello les amis

Code :
  1. ssh user@serveurX 'echo $toto'




Ca donne quoi si tu fais ca? :o

Code :
  1. ssh user@serveurX "echo \$toto"


---------------
Mon topic ventes ;)
n°1431996
cyberfred
Posté le 28-03-2019 à 21:15:54  profilanswer
 

hello kaari ,
 
j'ai essayé aussi en protégeant le $ avec le \   , l' echo ne renvoie toujours rien malheureusement  :sweat:  


Message édité par cyberfred le 28-03-2019 à 21:16:55
n°1431998
kaari
Fuck Yeah !
Posté le 28-03-2019 à 21:30:37  profilanswer
 

Ca marche chez moi:

Code :
  1. ssh server 'echo $SSH_CONNECTION'


 
Ca devrait marcher chez toi aussi.
Ou est défini ta variable ?
 
Rappelle toi que ton shell n'est pas interactif.


Message édité par kaari le 28-03-2019 à 21:36:06

---------------
Mon topic ventes ;)
n°1432006
cyberfred
Posté le 28-03-2019 à 23:13:13  profilanswer
 

la variable est définie sur tous mes serveurs distants :jap: mais pas sur le serveur local (normal car je veux récupérer les valeurs de la variable "toto" sur tous mes différents serveurs distants)
tu es sûr que ta variable SSH_CONNECTION n'est pas aussi définie en local ?
 
edit : en effet , tu récupéres la valeur locale car SSH_CONNECTION est définie par défaut sur ton serveur local , je viens juste de faire l'essai ;)


Message édité par cyberfred le 29-03-2019 à 08:25:20
n°1432015
kaari
Fuck Yeah !
Posté le 29-03-2019 à 08:44:32  profilanswer
 

Non la variable est vide si tu n'est pas connecté en ssh à la machine qui l'éxécute. Tu peux vérifier ça car elle te renvoie les 2 IPs. En tout cas pour ma distro. Et même si elle n'était pas nulle pour toi tu as les IPs donc tu peux savoir quelle machine à éxécuté le code.
 
Oui je sais que ta variable est définie sur tes machines distantes, mais où sont-elles définies ?


---------------
Mon topic ventes ;)
n°1432016
cyberfred
Posté le 29-03-2019 à 09:42:37  profilanswer
 

en effet , tu as raison :jap:
je devais pas être bien réveillé quand j'ai tapé la commande la première fois  , désolé
 
mais en fait , je crois que tu viens de me donner la réponse !
la variable que je veux obtenir est définie dans le répertoire de l'utilisateur distant dans un fichier env ;)
du coup , je suis trop bête , en sourcant mon envirronnement dans ma commande ssh , ca marche !
 
en gros , je fais ça :
ssh serveur_distant 'cd ~ ; . ./fichier.env > /dev/null ; echo $toto'
 
Merci encore à toi  Kaari :jap:


Message édité par cyberfred le 29-03-2019 à 09:52:16
n°1432019
kaari
Fuck Yeah !
Posté le 29-03-2019 à 10:37:00  profilanswer
 

Tu as compris ;)
 
Cela dit, tu peux te simplifier la tache en utilisant le bashrc.
dans ~/.bashrc

Code :
  1. #.bashrc
  2. # ...
  3. . ./.the-cat-realm.sh


Code :
  1. #.the-cat-realm.sh
  2. export MYCAT="she's so cute!"


 
depuis ta machine:

$ ssh server 'echo $MYCAT'
she's so cute!


Message édité par kaari le 29-03-2019 à 10:38:59

---------------
Mon topic ventes ;)
n°1432027
cyberfred
Posté le 29-03-2019 à 12:54:02  profilanswer
 

En effet , merci à toi pour ces conseils :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  valeur d'une variable à distance par ssh

 

Sujets relatifs
HELP bureau à distance windows vers Raspberry (Raspbian)Python sur Mint: problème variable string
[RESOLU] Afficher une variable qui en contient une autre...systemd valeur par défaut de fstrim.timer
[RESOLU] Crontab : Appeler variable déclarée dans un autre fichierpasser dynamiquement la variable .host a varnish
Variable $RANDOM et sort/uniqacces a distance ubuntu
Connaître en detail chaque variable d'environnement ?linux bash concatenation de variable
Plus de sujets relatifs à : valeur d'une variable à distance par ssh


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR