Parameter für plink-Aufruf

Mitglied: trobonarf

trobonarf (Level 1) - Jetzt verbinden

11.07.2017, aktualisiert 15:14 Uhr, 4245 Aufrufe, 4 Kommentare

Hallo,

ich führe via plink ein lokales Skript auf dem Server aus - das klappt soweit.
Beispiel:
.\plink.exe -ssh -t user@server -pw <passwort> -m Test.sh > Error.log 2>&1

Das ganze ist in ein (Windows) Cmd-Skript eingebettet; der Inhalt entspricht dem obigen Text. Test.sh ist hier exemplarisch genannt und seht für ein ganzes set an unterschiedlichen skripten.

Nun möchte ich diesem Skrip (Test.sh) Parameter mitgeben.

folgender Aufruf funktioniert nicht
.\plink.exe -ssh -t user@server -pw <passwort> -m Test.sh parameter1 Parameter2 > Error.log 2>&1
In der Doku und in anderen Einträgen habe ich nicht wirklich etwas zu dem Thema gefunden.

Ich hatte schon daran gedacht, die jeweilige Datei vorher zu ändern und (im aufrufenden cmd) aus zwei Dateien zusammenzusetzen: der originaldatei und davor einem Teil in dem entsprechende Parameter gesetzt werden. Dies geht aber nicht, da den Parametervariablen $1,$2,$3 usw. nichts zugeweisen werden kann.

Kennt jemand einen Trick, wie man die Parameter übergeben kann?
Mitglied: SaschaRD
11.07.2017, aktualisiert um 16:24 Uhr
Hallo @trobonarf,

hier ein Beispiel mit Powershell:
Auf dem Linux Maschine wird dann das Skript test.sh ausgeführt und übergebt das Wort hund:
Ergebnis:
ergebnis_plink - Klicke auf das Bild, um es zu vergrößern


Gruß, Sascha
Bitte warten ..
Mitglied: trobonarf
12.07.2017 um 12:20 Uhr
Hallo Sascha,

vielen Dank für Deine Antwort.
Der Aufruf über saps (btw:was ist das?) ist mir nicht bekannt. Wenn ich es aber richtig verstehen, dann führst Du ein Skript aus, dass schon auf dem Server liegt - das ist mir zwar auch schon auf ähnlichem Weg gelungen ein solches (auf dem Server liegendes Skript) mit Parametern aufzurufen aber im vorliegenden Fall soll gerade ein Script aufgerufen werden das lokal vorliegt (Option -m) und bekomme ich einfach keine PArameter übergeben.
Hast Du vieleicht eine Idee, wie es in dieser Konstellation funktionieren könnte?
Bitte warten ..
Mitglied: SaschaRD
LÖSUNG 12.07.2017, aktualisiert um 13:53 Uhr
Hallo @trobonarf,

saps ist das Kürzel für Start-Process.

Der Parameter -m ist nicht für die Ausführung von lokalen Skripten gedacht (sondern zum Einlesen von Befehlen), da verstehst du wohl etwas falsch.
Hier nochmal die Syntax:
Usage: plink [options] [user@]host [command]
("host" can also be a PuTTY saved session name)
Options:
-V print version information and exit
-pgpfp print PGP key fingerprints and exit
-v show verbose messages
-load sessname Load settings from saved session
-ssh -telnet -rlogin -raw
force use of a particular protocol
-P port connect to specified port
-l user connect with specified username
-batch disable all interactive prompts
The following options only apply to SSH connections:
-pw passw login with specified password
-D [listen-IP:]listen-port
Dynamic SOCKS-based port forwarding
-L [listen-IP:]listen-port:host:port
Forward local port to remote address
-R [listen-IP:]listen-port:host:port
Forward remote port to local address
-X -x enable / disable X11 forwarding
-A -a enable / disable agent forwarding
-t -T enable / disable pty allocation
-1 -2 force use of particular protocol version
-4 -6 force use of IPv4 or IPv6
-C enable compression
-i key private key file for authentication
-m file read remote command(s) from file
-s remote command is an SSH subsystem (SSH-2 only)
-N don't start a shell/command (SSH-2 only)
Als workaround könntest du das lokal liegende Skript vor dem Ausführen anpassen.

Oder z.B. auf Powershell umsteigen und darüber die SSH Verbindung aufbauen und die Befehle ausführen. Somit besteht die Möglichkeit der Parameterübergabe. Hier ein schnell zusammen gefrimmeltes Beispiel:
Ergebnis:
ps_beispiel - Klicke auf das Bild, um es zu vergrößern

Gruß, Sascha
Bitte warten ..
Mitglied: trobonarf
13.07.2017 um 08:21 Uhr
Hallo Sascha,

da war mein wording wohl etwas unscharf - mir ist schon klar, dass die -t option eine lokale Datei liest und die darin enthaltenen Befehle auf dem Server ausführt.
Dein Beispiel mit Powershell sieht vielversprechend aus, leider kann ich Powershell auf dem Client den ich verwende nicht nutzen.
Dein Hinweis mit dem Ersetzen der Parameter im Skript scheint mir die einzige Möglichkeit zu sein: Ich erzeuge nunmehr eine temporäre Datei die eine Kopie des Oroginals ist und ersetze darin die Parameter ($1,$2,$3 usw.) durch die richtigen Werte und da klappt.

Vielen Dank für Deine Hilfe, Gruß,
trobonarf
Bitte warten ..
Heiß diskutierte Inhalte
Firewall
PfSense direkt an Glasfasermodem der Telekom über PPPoE
snah0815Vor 1 TagFrageFirewall24 Kommentare

Hallo Zusammen, nachdem ich die pfSense nun eine Zeit lang in einer Kaskade mit einer Fritzbox 7590 betrieben habe, möchte ich nun gerne die ...

Netzwerkmanagement
TIA568A oder B - Leistungsunterschiede oder egal?
gelöst alboshiroVor 1 TagFrageNetzwerkmanagement15 Kommentare

Hallo Zusammen, ich bin aktuell im Hausbau und habe in jedem Zimmer ein RJ45 CAT7 Ethernetkabel für jeden Raum verlegt. Jetzt müsste ich die ...

Internet
Kein Internet nach Windows 2019 Server Installation
gelöst ZygmundVor 20 StundenFrageInternet24 Kommentare

Computer : HP ProLiant DL580 Gen7 , 4x CPU , 16 GB ECC Ram, 1 TB SAS Installation von - Windows 8 Server - ...

LAN, WAN, Wireless
WLAN-ACCESSPOINT welche soll ich mir kaufen?
samet22Vor 1 TagFrageLAN, WAN, Wireless11 Kommentare

Hallo :) Ich halte mich kurz: Ich möchte mir neue WLAN-Accesspoints für die Firma kaufen da die jetzigen fast 7 Jahre alt sind und ...

Webentwicklung
Wo legt Joomla den Content im Verzeichnis ab ?
MachelloVor 1 TagFrageWebentwicklung17 Kommentare

Hallo Zusammen, ich habe folgendes Problem: Ich benötige Daten aus einer alten Joomla Webseite. Von dieser Webseite habe ich nur das komplette Verzeichnis vom ...

Monitoring
PC Monitoring Software?
TRON06Vor 1 TagFrageMonitoring9 Kommentare

Gibt es eine Monitoring Software (ähnlich wie HWiNFO) mit der man mehrere Computer überwachen kann (CPU auslastung, Festplatte, Temperatur Sensoren) und wo die Daten ...

Netzwerke
DHCP-Probleme nach Switch-Wechsel
gelöst sausi77Vor 1 TagFrageNetzwerke7 Kommentare

Folgendes Problem: - hab meinen Switch gewechselt: vom Zyxel GS1900-24E auf einen Zyxel XGS1930 Seitdem haben mobile Clients (insbesondere auf iOS und Windows-Basis Probleme) ...

Windows 10
Vom Homeoffice auf lokale Dateien zugreifen
SayllesVor 22 StundenFrageWindows 106 Kommentare

Guten Morgen, meine Frau ist im Homeoffice, ihr Arbeitgeber stellt ihr einen Access der unter Server 2016 lauft zur Verfügung. Dieser Remote zugriff funktioniert ...