开发者

Execute Bash script stored in a file over SSH

Say I have the following Bash script stored in the file foo.sh:

#!/bin/bash
echo foo

Without having to scp the file, how could I execute the script stored in foo.sh on a remote machine?

I have tried the following (with a few variations) to no succe开发者_运维技巧ss:

$ ssh root@remote eval `cat foo.sh`

eval `cat foo.sh`seems to expand to eval #!/bin/bash echo foo here


ssh root@MachineB 'bash -s' < local_script.sh

I got it from that thread: How to use SSH to run a shell script on a remote machine?


In accepted answer I see:

I'd like to have it as a one liner. Could you make a small code example?

That should be it:

ssh root@MachineB 'bash -s -- uno' < local_script.sh

or better, with a here-in document

ssh root@MachineB 'bash -s -- uno' <<\EOF
> date
> echo $1
> EOF
jue sep 18 13:01:25 CEST 2014
uno


cat foo.sh | ssh -T root@remote will to the trick. The -T option suppresses a warning you would otherwise get because you're piping input from a file.


cat foo.sh | ssh HOSTNAME 

Now tested, though: handle with care! :)
(removed dash (see comments) and nearly everything :) )


You can use runoverssh:

sudo apt install runoverssh
runoverssh -s localscript.sh user host

-s runs a local script remotely

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜