TOM: Aufruf auf einer fremden Maschine.

Hallo Leute.

Folgende Frage:
Wie kann ich von einem Perl Programm aus, ein anderes Programm(in diesem Fall sql-Abfrage), welchese
auf einem anderem Computer liegt, starten.

Es handelt sich um zwei Unix-Kisten.
Ich hab da null Schimmer.
adios
tom

  1. Hallo Leute.

    Folgende Frage:
    Wie kann ich von einem Perl Programm aus, ein anderes Programm(in diesem Fall sql-Abfrage), welchese
    auf einem anderem Computer liegt, starten.

    Es handelt sich um zwei Unix-Kisten.
    Ich hab da null Schimmer.
    adios
    tom

    Das geht ganz normal über eine absolute Adressierung:

    http://www.domain.de/cgi-bin/script.cgi....

    Reiner

  2. Hi,

    Wie kann ich von einem Perl Programm aus, ein anderes Programm(in diesem Fall sql-Abfrage), welchese
    auf einem anderem Computer liegt, starten.

    Es handelt sich um zwei Unix-Kisten.

    allgemein gesagt: Indem Du Dir ein Kommunikationsprotokoll aussuchst, über welches die beiden Maschinen miteinander sprechen wollen.
    Das *kann* HTTP sein, wie im Vorschlag von Reiner. (Dazu müßte das gerufene Programm seine Parameter via CGI erhalten.)
    Es gibt aber auch andere Möglichkeiten, beispielsweise remote shell, TCP/IP-sockets, ...

    In jedem Falle muß Kiste Nr. 2 darauf vorbereitet sein, daß Kiste Nr. 1 etwas von ihr will, und sie muß es auch erlauben.

    mfG - Michael

    1. Hallo Micha,

      wie das mittels Browser geht, habe ich ja selbst vorgeschlagen.
      Wie kann ich es denn OHNE machen? Ich meine, wie sieht ein Script aus, daß nicht per html... direkt zugreift?

      exec ('perl http://www.domain.de/mein_script.cgi');

      funktioniert jedenfalls nicht!

      Reiner

      1. Moin Reiner!

        wie das mittels Browser geht, habe ich ja selbst vorgeschlagen.
        Wie kann ich es denn OHNE machen? Ich meine, wie sieht ein Script aus, daß nicht per html... direkt zugreift?

        Einen HTTP-Request kann doch nicht nur der Browser absetzen, sondern auch ein Script z.B.

        exec ('perl http://www.domain.de/mein_script.cgi');
        funktioniert jedenfalls nicht!

        Natuerlich nicht, wieso sollte es?

        Ein kleines Perl script, das einen HTTP-Request absetzt, sieht z.B. so aus (untested):

        #!/path/to/your/perl -w
        use strict;
        use LWP::UserAgent ();
        my $ua = LWP::UserAgent->new();
        my $request = HTTP::Request->new('GET', 'http://www.domain.de/mein_script.cgi');
        my $response = $ua->request($request);
        printf("HTTP response code: %d\n", $response->code());
        printf("Content is: %s\n", $response->content()) if ($response->code() == 200);

        So long

        1. Hallo Calocybe,

          danke!
          Dachte ich mir schon, daß da wieder ein Modul an der Reihe ist!
          Hat mir sehr geholfen!

          Reiner

  3. Folgende Frage:
    Wie kann ich von einem Perl Programm aus, ein anderes Programm(in diesem Fall sql-Abfrage), welchese
    auf einem anderem Computer liegt, starten.

    Du kannst zum Beispiel die Moeglichkeiten von ssh benutzen.

    Peter