Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Backupscript für DB Backup

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Backupscript für DB Backup

    Hey zusammen,

    ich habe ein Script geschrieben zum automatisierten Backup der DB. Dazu werden alle Daten in ein zip file gedumpt (ja ich weiß über die Unsicherheit dieses Vorgangs) und in einem .htaccess geschützten Verzeichnis gespeichert.

    An sich klappt auch alle,s bis auf die Tatsache, dass die zip-Datei die ich hinterher an den Browser zugesandt bekomme (headerlinking) leer ist. Die Datei auf dem Server wohlgemerkt ist mit dem backup geüllt. Lediglich die an den Browser gesandte ist leer.

    Woran liegt das? Und wie kann ich ein Backup auf dem Server speichern (ca 4-5 Backups), es aber auch gleichzeitig zum download bekommen?

    Hier das script:
    PHP-Code:
    <?php
    require_once 'incl_loggedIn.php'//Enthält Daten zur Datenbank, Rechteaktualisierung, etc.

    if ($_SESSION['r_db_backup'] != 1) {
     die(
    "Ihnen fehlen notwendige Rechte");
    }

    $datum date("ymd-His"time());
    $BackupOrdner "dbbackup";

    system("mysqldump -u ".$_incl['db_user']." -p".$_incl['db_pass']." -h ".$_incl['db_host']." ".$_incl['db_dbank']." > $BackupOrdner/$datum.sql");
    //Zippen:
    exec("zip $BackupOrdner/dbbackup-$datum.zip $BackupOrdner/$datum.sql");
    //SQL datei löschen
    unlink ("$BackupOrdner/$datum.sql");

    //array für nicht mehr als 5 dateien später:
    $fileunset = array();

    //Ordner auf Anzahl der Dateien prüfen
    $handle opendir($BackupOrdner);
    while (
    false !== ($file readdir($handle))) {
     if (
    $file != "." && $file != ".." && $file != ".htaccess") {
      
    $fileunset[] = $file;
     }
    }
    closedir($handle);

    //Dateien alphabetisch sortieren
    sort($fileunset);

    //Alte sqls löschen
    if (count($fileunset) >= 5) {
      @
    unlink("$BackupOrdner/".$fileunset[0]);
    }

    // Passenden Dateinamen im Download-Requester vorgeben,
    // z. B. den Original-Dateinamen
    header("Content-Disposition: attachment; filename=\"".basename("$BackupOrdner/dbbackup-$datum.zip")."\"");
    ?>
    Danke!
    lg netti


  • #2
    Dem header muß ein readfile folgen, dass den Inhalt ausgibt.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      PHP-Code:
      <?php
      // backup erzeugen
      // backup zippen
      // backup speichern
      // header senden
      // backup senden (readfile)
      ?>
      Keine Hexerei.
      "Mein Name ist Lohse, ich kaufe hier ein."

      Kommentar


      • #4
        Funktioniert perfekt!
        Danke.

        Der Vollständigkeit halber, ergänzt wurde am Ende des Scripts:

        PHP-Code:
        readfile("$BackupOrdner/dbbackup-$datum.zip");
        ?> 

        Kommentar

        Lädt...
        X