web-dev-qa-db-fra.com

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 que "aucun fichier ou répertoire de ce type" ne l'utilise-t-il pas?

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

Les Backticks exécuteront la commande sur le shell local et mettront les résultats sur la ligne de commande. Ce que vous dites, c'est 'exécutez ./test/foo.sh puis transmettez le résultat 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 personnel de l’ordinateur distant vers votre script.

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

En outre, le script doit être sur l'ordinateur distant. Cela vous connecte essentiellement à l'ordinateur distant avec la commande répertoriée en tant que votre shell. Vous ne pouvez pas exécuter un script local sur un ordinateur distant comme ceci (à moins que quelque truc amusant que je ne connaisse pas).

41
psanf

Ce que tu peux faire, c'est.

ssh user@Host 'bash -s' < /path/script.sh
133
German Attanasio

Si vous souhaitez exécuter un script local à distance sans l'enregistrer à distance, vous pouvez le faire comme suit:

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.

3
Computer Mage

Je ne sais pas s'il est possible de l'exécuter comme ça.

D'habitude, je le copie d'abord avec scp, puis me connecte pour l'exécuter.

scp foo.sh user@Host:~
ssh user@Host
./foo.sh
1
Macarse

Rendez le script exécutable par l'utilisateur "Kev" puis supprimez le test exécuté à l'aide de la commande sh kev@server1 /test/foo.sh

0
Milind Jindal

J'ai pu appeler un script shell à l'aide de cette commande:

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

bien entendu, checkScript.ksh doit exister dans le répertoire $HOME/sh.

0
Amit Singh