comment exécuter un fichier de script à distance à l’aide de ssh

Je veux exécuter un script à distance. Mais le système ne reconnaît pas le chemin. Il se plaint qu ‘”aucun fichier ou répertoire de ce type” ne m’utilise-t-il correctement?

ssh kev@server1 `./test/foo.sh` 

Backticks exécute la commande sur le shell local et place les résultats sur la ligne de commande. Ce que vous dites est “exécuter ./test/foo.sh et passer ensuite la sortie comme si je l’avais saisie sur la ligne de commande ici”.

Essayez la commande suivante et assurez-vous que c’est le chemin depuis votre répertoire personnel sur l’ordinateur distant vers votre script.

 ssh kev@server1 './test/foo.sh' 

En outre, le script doit être sur l’ordinateur distant. Qu’est-ce que cela fait est essentiellement vous connecter à l’ordinateur distant avec la commande répertoriée comme votre shell. Vous ne pouvez pas exécuter un script local sur un ordinateur distant comme celui-ci (sauf s’il existe un truc amusant que je ne connais pas).

Ce que vous pouvez faire est.

 ssh user@host 'bash -s' < /path/script.sh 

Je ne sais pas s’il est possible de le faire comme ça.

Je le copie généralement avec scp, puis je me connecte pour l’exécuter.

 scp foo.sh user@host:~ ssh user@host ./foo.sh 

Si vous voulez exécuter un script local à distance sans enregistrer ce script à distance, vous pouvez le faire comme ceci:

 cat local_script.sh | ssh user@remotehost 'bash -' 

fonctionne comme un charme pour moi.

Je le fais même de Windows à Linux étant donné que MSys est installé sur votre ordinateur Windows.

Rendez le script exécutable par l’utilisateur “Kev” puis supprimez-le en cours d’exécution via la commande sh kev@server1 /test/foo.sh

J’ai pu appeler un script shell en utilisant cette commande:

 ssh ${serverhost} "./sh/checkScript.ksh" 

checkScript.ksh sûr, checkScript.ksh doit exister dans le répertoire $HOME/sh .