Execute script local que requer argumentos no Linux via plink

4

É possível executar (a partir do Windows) um script local com argumentos em um sistema Linux remoto?

Veja o que eu recebi:

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

Existe uma maneira de fazer a mesma coisa, mas capaz de fornecer parâmetros de entrada para hello.sh?

Eu tentei muitas coisas, incluindo:

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

Neste caso, parece que plink acha que input1 e input2 são seus argumentos. o que faz sentido.

Quais são minhas opções?

    
por c_maker 17.11.2011 / 00:18

3 respostas

1

Eu tive o mesmo problema.

Você pode simplesmente escrever esta linha

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

Por exemplo, eu tive que executar um script e dar dois arquivos como parâmetros.

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

    
por 09.06.2016 / 16:56
0

plink não executa o script como um script sh ; ele apenas envia seu conteúdo como comandos separados, então não há nada para o qual você possa passar argumentos.

Você poderia contornar isso dizendo ao shell para interpretar seu stdin como se fosse um arquivo:

plink -T ... $SHELL /dev/stdin arg1 arg2 arg3 < hello.sh
    
por 17.11.2011 / 00:41
0

Para uma descrição mais detalhada (para ssh) veja esta resposta .

C:>type script.sh
#!/bin/bash
cd /home/user
echo "hello ${1:-}" > 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
    
por 27.07.2018 / 14:16