Andreas: Parameterübergabe mit "plink"

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

  1. 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

    1. 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

      1. 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

        1. 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

          1. 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