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

  • netti
    hat ein Thema erstellt [Erledigt] Backupscript für DB Backup.

    [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

  • netti
    antwortet
    Funktioniert perfekt!
    Danke.

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

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

    Einen Kommentar schreiben:


  • Chriz
    antwortet
    PHP-Code:
    <?php
    // backup erzeugen
    // backup zippen
    // backup speichern
    // header senden
    // backup senden (readfile)
    ?>
    Keine Hexerei.

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Dem header muß ein readfile folgen, dass den Inhalt ausgibt.

    Einen Kommentar schreiben:

Lädt...
X