Выполнить скрипт Bash, хранящийся в файле через SSH - PullRequest
19 голосов
/ 14 апреля 2011

Допустим, в файле foo.sh хранится следующий Bash-скрипт:

#!/bin/bash
echo foo

Без необходимости scp файла, как я могу выполнить скрипт, хранящийся в foo.sh на удаленном компьютере?машина?

Я попробовал следующее (с несколькими вариантами) безуспешно:

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

eval `cat foo.sh`, кажется, расширяется до eval #!/bin/bash echo foo здесь

Ответы [ 4 ]

34 голосов
/ 14 апреля 2011
ssh root@MachineB 'bash -s' < local_script.sh

Я получил его из этого потока: Как использовать SSH для запуска сценария оболочки на удаленной машине?

4 голосов
/ 18 сентября 2014

В принятом ответе вижу:

Я бы хотел, чтобы он был одним лайнером. Не могли бы вы сделать небольшой пример кода?

Так и должно быть:

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

или лучше, с настоящим документом

ssh root@MachineB 'bash -s -- uno' <<\EOF
> date
> echo $1
> EOF
jue sep 18 13:01:25 CEST 2014
uno
1 голос
/ 14 апреля 2011
cat foo.sh | ssh HOSTNAME 

Теперь проверено: обращайтесь с осторожностью! :)
(убрал тире (см комментарии) и почти все :))

1 голос
/ 14 апреля 2011

cat foo.sh | ssh -T root@remote воля к подвоху.Параметр -T подавляет предупреждение, которое вы получите в противном случае, поскольку вы передаете данные из файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...