Ankündigung

Einklappen
Keine Ankündigung bisher.

Automatische Sicherung der Datenbanken

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Automatische Sicherung der Datenbanken

    Hallo!

    Seit meinem letzten Servercrash suche ich händeringend eine Möglichkeit mir meine Datenbanken z.B. 1x pro Woche per Mail zusenden zu lassen...

    Über Google habe ich folgendes Script gefunden:

    <?php

    /* Database */
    $db = "database";
    $dbuser = "username";
    $dbpw = "password";
    $dbhost = "localhost";

    /* Email*/
    $to = "emailadresse";

    /* Misc */
    $file = "_B_A_C_K_U_P_" . $db . ".sql.gz";
    $message = "Backup ".$file." of ".$dbhost." attached.\n\n-- \n" . strip_tags($_SERVER["SERVER_SIGNATURE"]);
    $subject = "Backup ".$file;
    $from = "MySQL-Backup<".$_SERVER["SERVER_ADMIN"].">";

    /* Systemcall */
    system("/usr/bin/mysqldump -u".$dbuser." -p".$dbpw." -h ".$dbhost." ".$db." | /bin/gzip > ".$file, $fp);

    if ($fp==0) echo "Dump generated"; else die("Ooops. An error occured!");

    /* Prepare the email*/
    $boundary = strtoupper(md5(uniqid(time())));
    $mail_header = "From:".$from."\n";
    $mail_header .= "MIME-Version: 1.0";
    $mail_header .= "\nContent-Type: multipart/mixed; boundary=".$boundary;
    $mail_header .= "\n\nThis is a multi-part message in MIME format -- Dies ist eine mehrteilige Nachricht im MIME-Format";
    $mail_header .= "\n--".$boundary;
    $mail_header .= "\nContent-Type: text/plain";
    $mail_header .= "\nContent-Transfer-Encoding: 8bit";
    $mail_header .= "\n\n".$message;
    $file_content = fread(fopen($file,"r"),filesize($file));
    $file_content = chunk_split(base64_encode($file_content));
    $mail_header .= "\n--".$boundary;
    $mail_header .= "\nContent-Type: application/octetstream; name=\"".$file."\"";
    $mail_header .= "\nContent-Transfer-Encoding: base64";
    $mail_header .= "\nContent-Disposition: attachment; filename=\"".$file."\"";
    $mail_header .= "\n\n".$file_content;
    $mail_header .= "\n--".$boundary."--";

    /* Send the email */
    mail($to,$subject,"",$mail_header);

    ?>

    Es stammt von: http://blog.patrickkempf.de/2007/mys...ail-versenden/

    Leider klappt das bei mir nicht... ich habe alle erforderlichen Zugangsdaten richtig eingegeben, aber leider läuft das nicht... kann es am Safemode liegen? Klappt das ganze bei euch?

    Über Hilfe wäre ich sehr dankbar, vielleicht kennt jemand auch eine andere Möglichkeit.

    Gruß Uwe

  • #2
    läuft auf dem system wo du das script ausführst denn ein mailserver? und wird die datei erstellt? hat das script schreibrechte für die datei? Außerdem wichtig: FORENREGELN

    Kommentar


    • #3
      also ein mailserver läuft, wird nur nicht genutzt. Habe plesk zur Verwaltung meines vServers.

      Ich habe den Code einfach als backup.php bei mir in die Root gelegt, Schreibrechte habe ich nicht vergeben, braucht es ja auch eigentlich nicht oder?

      Kommentar


      • #4
        PHP-Code:
        system("/usr/bin/mysqldump -u".$dbuser." -p".$dbpw." -h ".$dbhost." ".$db." | /bin/gzip > ".$file$fp); 
        siehe da, man kann den Code hier mit PHP-Tags ganz einfach highlighten, das wüsstest du wenn du auf mich gehört hättest und die Forenregeln gelesen hättest.

        die oben genannte Zeile ist der Kern deines Skriptes, die führt (wenn sie denn darf) eine Kommandozeile auf deinem Server aus, diese solltest du analysieren und wie schon gesagt gucken ob die Datei erstellt wird.

        Kommentar


        • #5
          hmm... okay... ich habe es leider nicht so drauf mit dem programmieren, daher breche ich das projekt hier am besten ab. So ziehe ich mir nu den Zorn der User auf mich....

          Kommentar

          Lädt...
          X