Datenbanksicherung Marke Eigenbau
Erstellt von Chris am 12. August 2008
Die Funktion erstellt Datenbanksicherungen und löscht alle Sicherungen außer den neuesten 5.
Sie kann entweder via Cronjob oder händisch aufgerufen werden.
Zum Aufruf per Cron quelltext in eine .php-Datei sichern, und in den Crontab folgendes einfügen:
* * * * * wget –spider -q http://pfad/zur/backup.php
Wobei die Sternchen für folgendes stehen: (von links nach rechts!)
Minuten: 0-59
Stunden: 0-23
Tag des Monats: 1-31
Monat: 1-12
Tag der Woche: 0-7 (0 und 7 stehen für Sonntag)
Für jeden Wert kann auch ein * gesetzt werden, sodass der Cronjob
* 2 5 11 * wget –spider -q http://domain.tld/ordner/ordner/datei
nur am 5. November und nur von 2:00 bis 2:59 ausgeführt wird.
* 19 17 1 0 wget –spider -q http://domain.tld/ordner/ordner/datei
wird folglich nur an einem 17. Januar ausgeführt, der zusätzlich ein Sonntag ist, und dann auch nur zwischen 19:00 und 19:59.
// Datenbankdaten eintragen
$host= ‘localhost’;
$user= ‘xxxxxxx’;
$kennwort= ‘xxxxxxx’;
$db= ‘xxxxxxx’;
//
system(sprintf(
‘mysqldump –opt -h %s -u %s -p%s %s | gzip > %s’.$_SERVER['DOCUMENT _ROOT'].’/pfad/zum/zielordner/dump.’ . date(’Ymd_g_i’) . ‘.sql.gz’,
$host,
$user,
$kennwort,
$db,
getenv(’DOCUMENT_ROOT’)
));
echo ‘Sicherung Abgeschlossen’;
// Ordner Auslesen und veraltete Sicherungen finden
$archive = array();
$ordner = $_SERVER['DOCUMENT_ROOT'].”/pfad/zum/zielordner”;
$handle = opendir($ordner);
while ($file = readdir ($handle)) {
if($file != “.” && $file != “..”) {
if(is_dir($ordner.”/”.$file)) {
} else {
// absoluter Pfad
$absolut = $ordner.”/”.$file;
array_push($archive, $absolut);
}
}
}
closedir($handle);
//Arraysortierung umkehren, sodass neueste Sicherungen am Anfang stehen
rsort($archive);
$counter = 1;
foreach($archive as $row){
//Archiv-Eintrag im Array > 5 Dann lösche Archiv
if($counter > 5){
unlink($row);
}
$counter++;
}
unset($archive, $counter);
?>
Nichts besonders tolles oder aufwendiges, aber die Funktion war mir trotzdem einen Eintrag wert ![]()
Abgelegt unter Funktionen | Keine Kommentare »
