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.
<?php
// 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 
Tags:
Datenbanksicherung,
Eigenbau,
mysql,
php