Führen Sie ein lokales Skript aus, das unter Linux über plink Argumente erfordert

4151
c_maker

Ist es möglich (von Windows aus) ein lokales Skript mit Argumenten auf einem Remote-Linux-System auszuführen?

Hier ist was ich habe:

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

Gibt es eine Möglichkeit, das Gleiche zu tun, aber die Eingabeparameter an hallo.sh übergeben zu können?

Ich habe viele Dinge ausprobiert, darunter:

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

In diesem Fall scheint plink zu denken, dass input1 und input2 seine Argumente sind .. was sinnvoll ist.

Welche Möglichkeiten habe ich?

4

3 Antworten auf die Frage

1
Hari

Ich hatte das gleiche Problem.

Sie können diese Zeile einfach schreiben

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

Zum Beispiel musste ich ein Skript ausführen und zwei Dateien als Parameter angeben.

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

Ich denke nicht, dass es sich um das gleiche Problem handelt, das OP beschrieben wurde. In diesem Fall befindet sich das ausgeführte Skript auf dem Remote-Computer. martonbognar vor 5 Jahren 0
0
grawity

plinkführt das Skript nicht als SH- Skript aus; Der Inhalt wird lediglich als separate Befehle gesendet. Es gibt also nichts, an das Sie Argumente übergeben könnten.

Sie können dies umgehen, indem Sie der Shell mitteilen, dass sie deren Standardwert als eine Datei interpretieren soll:

plink -T ... $SHELL /dev/stdin arg1 arg2 arg3 < hello.sh 
Funktioniert nicht für mich. Soll ich '$ SHELL' durch etwas ersetzen? Soll arg1 der Name der Datei sein? Ich habe alle möglichen Kombinationen ausprobiert, nichts scheint zu funktionieren. Mein hallo.sh sieht folgendermaßen aus: '#! / Bin / bash echo "Ihr Argument ist" $ 1 ". c_maker vor 12 Jahren 0
@c_maker: Testen Sie die aktualisierte Version. und nein, $ SHELL wird automatisch auf dem Server erweitert und arg1 ist das erste Argument, das Sie angeben möchten. grawity vor 12 Jahren 0
0
martonbognar

Eine ausführlichere Beschreibung (für ssh) finden Sie in dieser Antwort .

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