LUis: backup

Hallo,

kennt jemand ein (kostenloses) perl/cgi Programm, das mir Dateien eines Pfades auf dem Server zip‚t und per E Mail zusendet.

Es geht auch ohne zip, oder ohne Mail, dann muß ich die Datei per ftp holen.

Es geht mir um das Backup der Forum-Dateien und das Herunterladen der aktuellen Maillisten!

Vielen Dank

Luis

  1. Hallo,

    so ein Teil schrieb ich mal... anzupassen wäre

    • Startdirectory
    • smtp-hostname
    • deineemail@dresse
    • dateiext.
    • Absender ...

    Schau mal obses zum Laufen kriegst ;-)

    Rolf

    ---zing---

    #####################################################################

    Adminvorgaben

    Startdirectory, mit Slash am Ende notieren

    $dir = "c:/httpd";

    Sicherungsdirectory, mit Slash am Ende notieren

    $sikdir = "c:/temp";

    Archivname

    $archiv = "heute.tar";

    Dateien der folgenden Erweiterung sollen gesichert werden

    $ext = "pl";

    Archiv packen 1 ja 0 nein

    $compressed = 1;

    Es folgen die Angaben zu Mail

    Mailadresse: Einfache Hochkommas!

    $an = 'otto@local';

    $an = 'rolf.rost@arcormail.de';

    SMTP HOST

    $smtphost = 'mailserver';

    $smtphost = '145.253.2.14';

    Betreff

    $subject = 'PLs von heute';

    Nachricht

    $msg = 'hier die PLs von heute...';

    Absender

    $abs = 'Rolf';
    #####################################################################

    use Archive::Tar;
    $tar = Archive::Tar->new();
    use File::Find;
    $i=0;
    find(&archive, $dir);

    sub archive{
    if(/.$ext$/i){
      $tar->add_files($_);
      $i++;
    }
    }
    $tar->write("$sikdir/$archiv.tar", $compressed);

    use Mail::Sender;   # Mail-Sender-0.6.7
    $sender = new Mail::Sender{smtp => $smtphost, from => $abs};
    ref($sender->MailFile(
    {to => $an,  
      subject => $subject,
      msg => $msg,
      file => "$sikdir/$archiv.tar"}
    ))&fehler;
    unlink "$sikdir/$archiv.tar";
    $sender->Close;

    sub fehler{
    die "Die Mail wurde nicht gesendet, weil: $Mail::Sender::Error\n";
    }
    print "Die heutige Arbeit wurde an $an gesendet\n";
    ---zang---

    1. Hallo, kleine Ergänzung noch:

      das Modul "mail-sender" gips hier http://jenda.krynicky.cz/ oder bei CPAN

      #####################################################################

      Adminvorgaben

      Startdirectory, mit Slash am Ende notieren

      mit oder ohne Slash -> egal - geht

      den Zähler $i kannst Du weglassen....

      Gruß aus EF, Rolf

      PS: Schluss für Heute....

      1. Hallo,

        zuerst einmal danke für deine Mühe
        es scheint mir das zu sein, was ich brauche!

        Ein bisschen "gespielt" habe ich schon, aber laufen tuts noch nicht.

        Ein paar Fragen:
        Muß da nicht in die erste Zeile: #!/usr/bin/perl ??

        Die Pfade bei den anderen pl‚s habe ich immer ohne C:/ angegeben, ich habe zur Vorsorge beides ausprobiert.

        Den Code von mail-sender habe ich mir geholt, aber wie muß ich die Datei benennen?
        Darf ich diese einfach ins cgi Verzeichniss kopieren?
        Mode 755?

        Ich weiß, viele Frage

        beantworte Sie nur wenn du Lust hast

        Viele Grüße
        Luis

        Hallo, kleine Ergänzung noch:

        das Modul "mail-sender" gips hier http://jenda.krynicky.cz/ oder bei CPAN

        #####################################################################

        Adminvorgaben

        Startdirectory, mit Slash am Ende notieren

        mit oder ohne Slash -> egal - geht

        den Zähler $i kannst Du weglassen....

        Gruß aus EF, Rolf

        PS: Schluss für Heute....

        1. Moin,

          Ein paar Fragen:
          Muß da nicht in die erste Zeile: #!/usr/bin/perl ??

          Richtig - den Pfad zum Perlinterpreter musst Du natürlich angeben.

          Die Pfade bei den anderen pl‚s habe ich immer ohne C:/ angegeben, ich habe zur Vorsorge beides ausprobiert.

          Pl's steht für Deine Dateien die archiviert und gemailt werden sollen, Du musst also die Dateierweiterung entsprechend Deiner Wünsche angeben. Unter UNIX entfällt natürlich der LW Buchstabe.

          Den Code von mail-sender habe ich mir geholt, aber wie muß ich die Datei benennen?
          Darf ich diese einfach ins cgi Verzeichniss kopieren?

          Das Perl-Modul "Mail-Sender-0.6.7" muss Dein Provider installieren, verweise ihn auf die Dokumentation.

          Eine UNIX Testumgebung hab ich leider nicht aber unter NT geht dieses Script einwandfrei.

          Viele Grüße, Rolf

  2. kennt jemand ein (kostenloses) perl/cgi Programm, das mir Dateien eines Pfades auf dem Server zip‚t und per E Mail zusendet.
    Es geht auch ohne zip, oder ohne Mail, dann muß ich die Datei per ftp holen.
    Es geht mir um das Backup der Forum-Dateien und das Herunterladen der aktuellen Maillisten!

    Welche Plattform?

    Deine Aufgabe würde ich unter UNIX mit einem Shell-Skript lösen:

    1. tar -cf  archiv.tar forumverzeichnis
    2. compress archiv.tar
    3. (eventuell mail mit attachment senden)
      Fertig. (Vielleicht noch ein bißchen Protokollierung und/oder Fehlerbehandlung.)

    Perl ist dafür m. E. nicht das richtige Werkzeug.
    (Auch CGI würde ich nicht nehmen, sondern das Ding nachts via cron starten.)

    Noch etwas: Vorher und nachher ggf. das Forum blockieren, damit Du einen konsistenten Zustand sicherst.