Dieses Skript ist eine automatisierte Datensicherung der Mysql Datenbank in der Nacht, die Sie mit Hilfe eines CronJobs anlegen können.
Folgende Schritte sind notwendig:
1. Legen Sie im FTP-Hauptverzeichnis Ihrer Domain einen Unterordner „backup“ an.
2. Geben Sie über Ihr FTP-Programm dem Ordner eine Schreibberechtigung (CHMOD) von 777.
3. Erstellen Sie in dem Ordner eine PHP-Datei (db_backup.phpx) mit folgendem Inhalt
<?php ######## einstellungen ############################################# $db_name = "IhreDatenBank"; $db_passwd = "IhrDatenBankPasswort"; $downloadlink_erstellen = "ja"; $bestaetigungsmail_senden = "ja"; $bestaetigungsmail_adresse = "IhreMailAdresse"; $bestaetigungsmail_betreff = "[BACKUP] Ihr Backupscript"; $sql_file = "dump_" . $db_name . "_" . date('Ymd_Hi') . ".sql"; #################################################################### ################## AB HIER BITTE NICHTS MEHR ÄNDERN!!! ################ ### daten überprüfen if ( $db_name == "IhreDatenBank" or $db_passwd == "IhrDatenBankPasswort" ) { die("FEHLER: Sie müssen zunächst Ihre Datenbankdaten im Script eingeben!"); } if ( file_exists($sql_file) or file_exists($sql_file . ".gz") ) { die("FEHLER: Das zu erstellende Dump existiert bereits!"); } ## dump erstellen exec("mysqldump -u $db_name -p'$db_passwd' --quick --allow-keywords --add-drop-table --complete-insert --quote-names $db_name >$sql_file"); exec("gzip $sql_file"); ### größe ermitteln $datei = $sql_file . ".gz"; $size = filesize($datei); $i = 0; while ( $size > 1024 ) { $i++; $size = $size / 1024; } $fileSizeNames = array(" Bytes", " KiloBytes", " MegaBytes", " GigaBytes", " TerraBytes"); $size = round($size,2); $size = str_replace(".", ",", $size); $groesse = "$size $fileSizeNames[$i]"; ### nachricht erstellen $message = "Ihr Backup der Datenbank <b>" . $db_name . "</b> wurde durchgeführt.<br>"; $message .= "Die Größe des erstellten Dumps beträgt <b>" . $groesse . "</b>.<br>"; if ($downloadlink_erstellen == "yes" or $downloadlink_erstellen == "ja" or $downloadlink_erstellen == "1") { $link = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; $link = str_replace(basename(__FILE__),$datei,$link); $message .= "Downloadlink: <a href=" . $link . ">" . $datei . "</a>"; } ## nachricht ausgeben echo $message; ### mail versenden if ($bestaetigungsmail_senden == "yes" or $bestaetigungsmail_senden == "ja" or $bestaetigungsmail_senden == "1") { if(!preg_match( '/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/' , $bestaetigungsmail_adresse)) { echo "<br>FEHLER: Mail konnte nicht versendet werden, da die Adresse ungültig ist!"; } else { mail($bestaetigungsmail_adresse, $bestaetigungsmail_betreff, $message,"From: backupscript@{$_SERVER['SERVER_NAME']}\r\n" . "Reply-To: backupscript@{$_SERVER['SERVER_NAME']}\r\n" . "Content-Type: text/html\r\n") or die("FEHLER: Mail konnte wegen eines unbekannten Fehlers nicht versendet werden"); echo "<br>Bestätigungsmail wurde erfolgreich versandt!"; } } ?>
Zum Schluß müssen Sie nur noch den Zugriff auf das Verzeichnis mit htaccess sichern..