Выполнить локальный скрипт, требующий аргументов в Linux, через plink

4052
c_maker

Можно ли выполнить (из окон) локальный сценарий с аргументами в удаленной системе Linux?

Вот что я получил:

plink 1.2.3.4 -l root -pw mypassword -m hello.sh 

Есть ли способ сделать то же самое, но в состоянии дать входные параметры для hello.sh?

Я перепробовал много вещей, в том числе:

plink 1.2.3.4 -l root -pw mypassword -m hello.sh input1 input2 

В этом случае кажется, что plink считает, что input1 и input2 являются его аргументами .. что имеет смысл.

Какие у меня варианты?

4

3 ответа на вопрос

1
Hari

Я была такая же проблема.

Вы можете просто написать эту строку

plink 1.2.3.4 -l root -pw pass " myscript.sh arg1 arg2"

Например, мне пришлось запустить скрипт и указать два файла в качестве параметров.

plink 1.2.3.4 -l root -pw pass " myscript.sh path/to/file1 path/to/file2"

Я не думаю, что это та же проблема, что и описанный OP, в этом случае исполняемый скрипт находится на удаленной машине, не так ли? martonbognar 5 лет назад 0
0
grawity

plinkне запускает скрипт как скрипт sh ; он просто отправляет свое содержимое в виде отдельных команд, поэтому вы не можете передавать аргументы.

Вы можете обойти это, сказав оболочке интерпретировать ее стандартный ввод, как если бы это был файл:

plink -T ... $SHELL /dev/stdin arg1 arg2 arg3 < hello.sh 
Не работает для меня Я должен заменить '$ SHELL' на что-то? arg1 должен быть именем файла? Я пробовал все виды комбинаций, кажется, ничего не работает. Мой hello.sh выглядит так: '#! / Bin / bash echo "Ваш аргумент -" $ 1 ". c_maker 12 лет назад 0
@c_maker: попробуйте обновленную версию; и нет, $ SHELL будет автоматически развернут на сервере, и arg1 - это первый аргумент, который вы хотите дать. grawity 12 лет назад 0
0
martonbognar

Более подробное описание (для ssh) смотрите в этом ответе .

C:>type script.sh #!/bin/bash cd /home/user echo "hello $" > hello.txt  C:>plink user@host -pw password "bash -s" < script.sh "world"  C:>plink user@host -pw password "cat /home/user/hello.txt" hello world 

Похожие вопросы