Hilfe: Geht das & wenn ja wie?

Von: , Frage gestellt am Mi, 30. Okt 2002

Hi

Ich brauche drigend Hilfe:
Ein Freund und ich haben haben eine Page mit Freeware.
Nun erreichen wir das Transferlimit und müssen daher was tun.
Unsere Idee wäre ein Mirror nun gibts zwei Probleme:

- Wie können wir per URL-Aufruf (nur durch uns .htaccess-geschützt) vom einem Server auf den zweiten mittels perl (kein Telnet) die immer gleiche Softwaredatei über einen direkten FTP-Connect auf den zweiten Server spiegeln?
Also wir laden auf den ersten Server die Datei hoch und dann rufen wir www.domain.de/cgi-bin/spiegelung.pl im Browser auf.
Dann kopiert Server (ist ein root-server von 1&1) die Dateien auf Server zwei via FTP und bestätigt dies im browser das es erfolgreich war.
Kann einer BITTE kurze hier posten wie dieses spieglung.cgi-Script lauten muss?
Ein zweiter Upload ist magels DSL und Flat auf Dauer zu teuer bei 8 MB Grösse und Updates fast alle paar Tage..

- Lastenverteilung beim Download:
Die User sollen nix merken, sondern wenn diese auf auf den Download-Link klicken soll ein cgi oder php-Script automatisch an einen der Server weiterleiten. Und zwar abwechselnd.
Mein Freund kennt sich nur in Delphi aus und ich habe gar keine Ahnung.

HELP!

THX!

8 Antworten zu dieser Frage

  1. Antwort von nach 16 Stunden 0 hilfreich
    Re: Hilfe: Geht das & wenn ja wie?

    Hi

    - Wie können wir per URL-Aufruf (nur durch uns
    .htaccess-geschützt) vom einem Server auf den zweiten mittels
    perl (kein Telnet) die immer gleiche Softwaredatei über einen
    direkten FTP-Connect auf den zweiten Server spiegeln?
    aus perldoc Net::FTP (etwas abgeändert);

    use Net::FTP;
    use CGI:Carp 'fatalsToBrowser';
    print "Content-Type: text/plain";
    $ftp = Net::FTP->new("some.host.name") or die $!;
    $ftp->login("user",'pass') or die $!;
    $ftp->cwd("/pub");
    $ftp->put("local.file") or die $!;
    $ftp->quit;
    print "Ok";
    - Lastenverteilung beim Download
    $url[0] = "http://...";
    $url[1] = "http://...";
    srand();
    print "Location: ".$url[int(rand(scalar @url))]."\n\n"; Die User sollen nix merken, sondern wenn diese auf auf den
    Download-Link klicken soll ein cgi oder php-Script automatisch
    an einen der Server weiterleiten. Und zwar abwechselnd.
    ..zufällig ist wesentlich einfacher, und erfüllt den gleichen Zweck. (Alles in Perl)

    Alexander

    • Antwort von nach einem Tag 0 hilfreich
      Re^2: Hilfe: Geht das & wenn ja wie?

      Hi Alexeander

      THX THX! THX!

      Leider aber klappts nicht,,bekomme einen Internal Server error.
      Rechte sind richtig gesetzt..
      Wenn ich per SSH das Script mal starte kommt:
      pXXXXXX:/home/www/web2/html/cgi-bin # ./mirror.pl
      syntax error at ./mirror.pl line 4, near "use CGI:"
      Execution of ./mirror.pl aborted due to compilation errors.

      Hier das Script wie ich es als mirror.pl abgespeichert habe:

      ----
      #!/usr/bin/perl

      use Net::FTP;
      use CGI:Carp 'fatalsToBrowser';
      print "Content-Type: text/plain";
      $ftp = Net::FTP->new("domain.de") or die $!;
      $ftp->login("username",'password') or die $!;
      $ftp->cwd("backup");
      $ftp->put("/home/www/web2/html/english/download/programm.exe") or die $!;
      $ftp->quit;
      print "Ok";
      ----

      Any idea?
      THX!

      • Antwort von nach einem Tag 0 hilfreich
        Re^3: Hilfe: Geht das & wenn ja wie?

        Hi Alexeander

        Hier das Script wie ich es als mirror.pl abgespeichert habe:

        ----
        #!/usr/bin/perl

        use Net::FTP;
        use CGI:Carp 'fatalsToBrowser';
        use CGI::Carp 'fatalsToBrowser';

        ..ein : vergessen

        ...

        • Antwort von nach einem Tag 0 hilfreich
          Re^4: Hilfe: Geht das & wenn ja wie?

          Hi Alexander

          THX....aber leider immer noch Error..

          Any new idea?

          THX!

          • Antwort von nach 2 Tagen 0 hilfreich
            Re^5: Hilfe: Geht das & wenn ja wie?

            Hi Alexander

            THX....aber leider immer noch Error..

            Any new idea?
            Welcher Fehler ? Nochmal komplett aus der Shell:
            alx@server:~> cat ftptest.pl
            #!/usr/bin/perl
            use Net::FTP;
            use CGI::Carp 'fatalsToBrowser';
            print "Content-Type: text/plain\n\n";
            $ftp = Net::FTP->new("localhost") or die $!;
            $ftp->login("username",'passwort') or die $!;
            $ftp->cwd("/tmp");
            $ftp->put("ftptest.pl") or die $!;
            $ftp->quit;
            print "Ok";
            alx@server:~> perl ftptest.pl
            Content-Type: text/plain

            Okalx@server:~> ls /tmp/ftp*
            /tmp/ftptest.pl

            Ansonsten einfach mal die Fehlermeldung posten. Wenn es nur von der Konsole aus aufgerufen werden soll, kann man
            use CGI::Carp 'fatalsToBrowser';
            print "Content-Type: text/plain\n\n";
            auch weglassen, das ist nur nötig beim Aufruf per CGI.

            • Antwort von nach 3 Tagen 0 hilfreich
              Re^6: Hilfe: Geht das & wenn ja wie?

              Hi Alexandder

              Thx für Deine Mühen.

              Unter der Konsole gehts einwandfrei.
              Nur leider nicht per www.domain.de/cgi-bin/ftptest.pl
              Dann kommt im Browser:

              Internal Server Error

              The server encountered an internal error or misconfiguration and was unable to complete your request.

              Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused
              the error.

              More information about this error may be available in the server error log.


              Das Problem ist, das der Aufruf über den Browser gehen muss, da mein Freund keinen SSH-Zugriff hat bzw. das zu lange dauern würde sich jedesmal einzuloggen.

              THX!

            • Antwort von nach 3 Tagen 0 hilfreich
              Re^7: Hilfe: Geht das & wenn ja wie?

              Hi! Unter der Konsole gehts einwandfrei.
              Nur leider nicht per www.domain.de/cgi-bin/ftptest.pl
              Dann kommt im Browser:

              Internal Server Error
              Schau Dir mal den Thread "500 Internal Server Error"
              weiter unten in diesem Brett an.

              Gruß,
              -Andreas.

            • Antwort von nach 5 Tagen 0 hilfreich
              Re^7: Hilfe: Geht das & wenn ja wie?

              Hi ! Dann kommt im Browser:

              Internal Server Error
              chmod 755 ?
              Content-Type Zeile drin gelassen (mit \n\n am Ende?), wie in der späteren Message ?

              Wenn die Datei sehr groß ist, d.h. die Übertragung zu lange dauert, kann es auch sein, das das Script vorher vom Webserver abgebrochen wird, dann geht's nur per Shell.

              Alexander

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!