Hello à toutes et à tous.
Depuis quelques jours, j'essaie via le ssh d'exécuter sur une machine distante,
un script bash que j'ai en local.
Si je me connecte en SSH sur la machine distante,
et que j'exécute la commande directement, ça fonctionne.
Cependant, lorsque j'essaie à partir de mon script local j'ai cette erreur :
execl(); errno 2
Couldn't save environment -1#
Voici la commande que j'aimerais exécuter :
/opt/lantiq/bin/sfp_i2c -i11 -s XXXXXXXXXX
Voici les scripts :
- Celui que j'exécute en local pour établir la connexion en ssh :
#/bin/bash
pass=$1
sudo sshpass -p 'XXXXXXXXXX' ssh -y ONTUSER@192.168.1.10 'ash -s' < /tmp/test1.sh $pass
- Celui que j'aimerais exécuter à distance :
#!/bin/ash
pass=$1
echo $pass
/opt/lantiq/bin/sfp_i2c -i11 -s $PASS
J'ai essayé en remplaçant #!/bin/ash par #!/usr/bin/env ash, mais le résultat est le même.
Si quelqu'un a une idée :)
Merci par avance
Doudoo
# mise en page foireuse
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 4.
C'est un peu illisible ; je ne sais pas si tu étais satisfait/satisfaite de la prévisualisation avant de poster.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: mise en page foireuse
Posté par NeoX . Évalué à 3. Dernière modification le 11 novembre 2021 à 19:25.
j'ai corrigé pour lui
faut dire que le bouton "code" ne precise pas de mettre le langage associé et pete souvent la mise en forme.
[^] # Re: mise en page foireuse
Posté par doudootiana . Évalué à 1.
Hello.
Je te remercie :)
[^] # Re: mise en page foireuse
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 11 novembre 2021 à 20:38.
Merci
:-)
C'est plus clair ainsi et on peut enfin apporter des réponses/pistes (je viens de voir que j'ai été devancé par NeoX)“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# probleme de qui gere quoi ?
Posté par NeoX . Évalué à 4. Dernière modification le 11 novembre 2021 à 19:35.
il te faut passer le contenu de ton script à 'ash -s', pas à ssh
il te faut donc jouer des simples quote, double quote
sinon, dans ce cas present pourquoi faire un script pour lancer 1 seule commande
qui pourrait etre remplacer par
autre possibilité,
transférer le script, puis l'executer à distance
[^] # Re: probleme de qui gere quoi ?
Posté par doudootiana . Évalué à 1.
Hello.
Je te remercie pour ta réponse.
Je testerai ce soir.
Merci encore :)
[^] # Re: probleme de qui gere quoi ?
Posté par cg . Évalué à 3.
Pour compléter, un mélange de transfert de script et d'exécution :
echo "/opt/lantiq/bin/sfp_i2c -i11 -s ${pass}" | ssh ordi_distant "ash -"
Pour passer un script plus long, c'est peut être utile d'ajouter
base64
etbase64 -d
de part et d'autre dussh
.# Touvé :)
Posté par doudootiana . Évalué à 1.
Hello,
Tout d'abord, je vous remercie pour votre aide et vos réponses.
En utilisant vos méthodes, je me retrouvais avec les mêmes messages d'erreurs :(
Mais j'ai trouvé ceci , si ça peut aider :
sudo sshpass -p 'XXXXXX' ssh -y ONTUSER@192.168.1.10 "ash --login -c '/opt/lantiq/bin/sfp_i2c -i11 -s \"$slid\"; reboot; exit'"
# Sans charger le script
Posté par Anthony Jaguenaud . Évalué à 2.
Salut,
La commande
ssh login@machine
te permet de lancer un interpréteur de commande distant. Est-ce qu’un simple :ssh login@machine <mon_script
ne fonctionnerait pas ? J’ai juste un doute sur certaines structureif
,for
par exemple.Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.