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:
Danke!
lg netti
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")."\"");
?>
lg netti
Kommentar