Parameterübergabe mit "plink"
Andreas
- sonstiges
Hallo!
plink ist ein mir in diesem Forum empfohlenes Tool um von einem Windows Rechner über eine SSH verschlüsselte Verbindung auf eonem Linux-Rechner ein Script zu starten. Soweit klappt das Prima.
Nur würde ich dem Script gerne einen oder zwei Parameter übergeben.
So sieht der Kommandozeilen-Aufruf von plink aus:
plink -pw [passwort] [user]@[host] php -q script.php
Hat jemend eine Idee wie ich dem script.php jetzt einen Parameter übergebe? Wenn ich plink -h eingebe finde ich nur sehr wenige Infos zu Optionen, aber nichts was mir helfen könnte.
Noch eine andere Frage, kann PHP über eine Socketverbindung per SSL-verschlüsselt Daten zu einem Apache übertragen und empfangen?
Grüße
Andreas
Hallo Andreas,
[...]
So sieht der Kommandozeilen-Aufruf von plink aus:
plink -pw [passwort] [user]@[host] php -q script.php
Wenn das so funktioniert und du
[...] dem script.php jetzt einen Parameter übergeben [...]
möchtest,
sollte doch auch das hier funktionieren:
plink -pw [passwort] [user]@[host] php -q script.php?param1=wert1&so=weiter
Somit solltest Du alles Mögliche auf altbekannte Weise ans PHP Script durchreichen können.
Grüße
Holger
Hi Holger!
[...]
So sieht der Kommandozeilen-Aufruf von plink aus:
plink -pw [passwort] [user]@[host] php -q script.php
Wenn das so funktioniert und du
[...] dem script.php jetzt einen Parameter übergeben [...]
möchtest,
sollte doch auch das hier funktionieren:
plink -pw [passwort] [user]@[host] php -q script.php?param1=wert1&so=weiter
Somit solltest Du alles Mögliche auf altbekannte Weise ans PHP Script durchreichen können.
Das doofe an der Sache, das hier ist kein HTTP, also da ist kein Apache der ggfs. PHP diesen angehängten Parameter zur Verfügung stellen könnte, bis jetzt habe ich sowas über die Shell noch nicht geschafft!
Vielleicht um es zu verdeutlichen:
php -q script.php
ist der Befehl, der in der Shell ausgeführt wird. Also ist das eher ein SHELL-Problem als ein spezifisches plink-Problem, oder?
Gibt es da in der Shell Möglichkeiten einem PHP-Script Parameter zu übergeben?
Grüße
Andreas
Hallo nochmal!
Habe etwas gefunden, wie ich in der Shell Argumente übergeben kann:
tobias@dev:~ > cat arg.php3
#!/usr/bin/php -q
<?
for($i=0; $i<$argc; $i++)
print($argv[$i]."\n");
?>
tobias@dev:~ > ./arg.php3 foo bar baz
./arg.php3
foo
bar
baz
Jetzt habe ich ein anderes Problem:
Wie kann ich in der Windows Kommandozeile die SHELL-Kommandos von denen der eigenen Kommandozeile trennen?
folgendes ist meine Anwendung(script.php erzeugt einen MySQL-Dump, der in eine Lokale DB eingelesen werden soll)
plink -pw [passwort] [user]@[host] cd test; ./script.php arg | mysql -u user datenbank
cd test; ./script.php arg
wird remote in der Unix-Shell ausgeführt, und
mysql -u user datenbank
auf der eigenen Kommandozeile.
Das klappt jetzt wahrscheinlich eher zufällig. Wie kann ich das denn grundsätzlich voneinander abgrenzen, das sich die Kommandozeilenbefehle nicht gegenseitig in die Quere kommen?
Viele Grüße
Andreas
Hallo,
Wie kann ich in der Windows Kommandozeile die SHELL-Kommandos von denen der eigenen Kommandozeile trennen?
plink -pw [passwort] [user]@[host] cd test; ./script.php arg | mysql -u user datenbank
Das Problem ergibt sich am wahrscheinlichsten, wenn Du auhc auf dem Remote-System etwas mit Pipes machen willst.
Ich würde Dir empfehlen, die Option -m genauer anzusehen (http://the.earth.li/~sgtatham/putty/0.52/htmldoc/Chapter7.html#7.2.3).
Du legst einfach lokal eine Datei an, in der Du den oder die Kommandos reinschreibst, die Du ausführen lassen willst.
dann übergibst Du die Datei an plink:
plink -pw [passwort] [user]@[host] -m test.plink |lokales kommando
Grüße
Klaus
Hallo!
dann übergibst Du die Datei an plink:
plink -pw [passwort] [user]@[host] -m test.plink |lokales kommando
Du wirst es nicht glauben aber ich habe das tatsächlich gestern schon probiert und es hat nicht geklappt, da dachte ich da könnte man nur irgendwelche anderen Kommandos reinschreiben, halt nicht Shell, da plink -h nicht wirklich ausführlich ist ;-)
Diesmal hats geklappt - Danke!
Grüße
Andreas