Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run a script file remotely using SSH

Tags:

scripting

ssh

I want to run a script remotely. But the system doesn't recognize the path. It complains that "no such file or directory". Am I using it right?

ssh kev@server1 `./test/foo.sh`
like image 636
Progress Programmer Avatar asked Jun 25 '09 00:06

Progress Programmer


People also ask

How do I run a script on a remote host?

To run a script on one or many remote computers, use the FilePath parameter of the Invoke-Command cmdlet. The script must be on or accessible to your local computer. The results are returned to your local computer.


4 Answers

You can do:

ssh user@host 'bash -s' < /path/script.sh
like image 142
German Attanasio Avatar answered Oct 19 '22 10:10

German Attanasio


Backticks will run the command on the local shell and put the results on the command line. What you're saying is 'execute ./test/foo.sh and then pass the output as if I'd typed it on the commandline here'.

Try the following command, and make sure that thats the path from your home directory on the remote computer to your script.

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

Also, the script has to be on the remote computer. What this does is essentially log you into the remote computer with the listed command as your shell. You can't run a local script on a remote computer like this (unless theres some fun trick I don't know).

like image 40
psanf Avatar answered Oct 19 '22 10:10

psanf


If you want to execute a local script remotely without saving that script remotely you can do it like this:

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

It works like a charm for me.

I do that even from Windows to Linux given that you have MSYS installed on your Windows computer.

like image 22
Sergey Kuznetsov Avatar answered Oct 19 '22 10:10

Sergey Kuznetsov


I don't know if it's possible to run it just like that.

I usually first copy it with scp and then log in to run it.

scp foo.sh user@host:~
ssh user@host
./foo.sh
like image 2
Macarse Avatar answered Oct 19 '22 11:10

Macarse