Exécuter la commande sur un serveur distant via ssh
Je suis de la tentative d'exécution d'une commande sur le serveur linux distant via une commande ssh sur un serveur local comme ceci:
ssh myremoteserver "type ttisql'
où ttisql est un exécutable sur le chemin de ma machine à distance.
Le résultat de l'exécution de la présente est:
bash: la ligne 0: type: ttisql: pas trouvé
Quand je il suffit de connecter d'abord et ne:
ssh myremoteserver
et puis entrez la commande:
[myuser@myremoteserver~]$: type ttisql
- Je reprendre le chemin de la ttisql exe que je m'attends.
La chose étrange est que lorsque j'exécute la commande dans mon beta de l'environnement qu'il fonctionne comme prévu et renvoie le chemin de l'exe. Dans la version bêta scénario, Une machine se connecte à la machine à distance B, mais les deux machines sont sur le site et la commande ssh se connecte à la machine distante rapidement.
Le problème est rencontré dans notre environnement de production lorsque la machine locale et la machine B est à l'extérieur, et la commande ssh prend qu'une seconde ou deux pour vous connecter.
La seule différence que je peux voir, c'est le temps nécessaire à la production de ssh pour vous connecter. Le chemin d'accès sur le système distant est correcte, car la commande fonctionne s'il a été saisi après la connexion initiale.
Quelqu'un peut-il m'aider à comprendre pourquoi cette commande simple serait de travailler dans un environnement et pas l'autre? Pourrait être le problème lié au temps qu'il faut pour se connecter via ssh?
Vous devez vous connecter pour publier un commentaire.
Votre
PATH
est configuré différemment lorsque votre shell est interactif (= lorsque vous êtes connecté sur le serveur), et lorsqu'il n'est pas interactif (commandes en cours d'exécution avecssh
).Regarder dans le rc fichiers utilisés par votre shell, par exemple
.bashrc
,.bash_profile
,.profile
(dépend de votre système). Si vous définissezPATH
au bon endroit, puisttisql
permet de travailler quand vous le lancez, viassh
.Une autre solution est d'utiliser le chemin absolu de
ttisql
, alors il ne dépendra pas de votrePATH
de l'installation.ssh remote echo $PATH
etssh remote 'echo $PATH'
. Les graduations ont été la clé.L'environnement peut être différente dans un non-session interactive (
ssh command
) à partir d'une session interactive (ssh
, puiscommand
). Essayezecho $PATH
dans les deux cas.vs
Si elles diffèrent, regarder dans tous les script de démarrage pour certains différenciées comportement basé sur des
$PS1
ou$-