comment exécuter un fichier de script à distance en utilisant ssh
Je veux exécuter un script à distance. Mais le système ne reconnaît pas le chemin. Il se plaint que "aucun fichier ou répertoire "Suis-je l'utiliser?
ssh kev@server1 `./test/foo.sh`
6 réponses
Backticks exécutera la commande sur le shell local et mettra les résultats sur la ligne de commande. Ce que vous dites, c'est "Exécuter ./test/foo.sh et puis passez la sortie comme si je l'avais tapé sur la ligne de commande ici'.
Essayez la commande suivante, et assurez-vous que c'est le chemin de votre répertoire sur l'ordinateur distant à votre script.
ssh kev@server1 './test/foo.sh'
Aussi, le script doit être sur l'ordinateur distant. Ce que cela fait est essentiellement vous connecter à l'ordinateur distant avec la liste commande comme votre shell. Vous ne pouvez pas exécuter un script local sur un ordinateur distant comme celui-ci (à moins qu'il y ait 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 l'exécuter comme ça.
Habituellement, je le Copie d'abord 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 le 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 vous avez MSys installé sur votre ordinateur Windows.
Rendez le script exécutable par l'utilisateur " Kev " puis supprimez l'essai 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"
Bien sûr, checkScript.ksh
doit exister dans $HOME/sh
répertoire.