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`
42
demandé sur Progress Programmer 2009-06-25 04:18:17

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).

40
répondu psanf 2013-07-02 21:37:30

Ce que vous pouvez faire est.

ssh user@host 'bash -s' < /path/script.sh
128
répondu German Attanasio 2011-11-28 17:35:49

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
1
répondu Macarse 2009-06-25 00:23:01

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.

1
répondu Computer Mage 2017-02-02 00:48:57

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

0
répondu Milind Jindal 2013-02-05 06:23:23

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.

0
répondu Amit Singh 2016-02-26 06:14:31