download-1

[Allinkl.com] Datenbanksicherung mit PHP & E-Mail-Benachrichtigung

Drucken
Moin,
Ihr  könnt eine Datenbanksicherung mit Hilfe eines PHP-Scriptes anlegen. Dieses Script eignet sich auch für eine automatisierte Datensicherung in der Nacht, die Ihr mit Hilfe eines CronJobs anlegen können. Solltet Euer Tarif keinen CronJob besitzen, so könnt Ihr diesen in der MembersArea unter ZUSATZPTIONEN dazu bestellen und dann unter CRON JOBS einrichten.

Oder Ihr schaut mal auf www.cronjob.de vorbei.

Folgende Schritte sind notwendig!

1. Legt nun im FTP-Hauptverzeichnis Eurer Domain einen Unterordner „backup“ an.

2. Gebt über euer FTP-Programm dem Ordner eine Schreibberechtigung (CHMOD) von 777.

3. Erstellt 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";

####################################################################

### daten überprüfen
if ( $db_name == "IhreDatenBank" or $db_passwd == "IhrDatenBankPasswort" )
{
die("FEHLER: Sie m&uuml;ssen zun&auml;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
$message = str_replace("<br>", "\r\n", $message);
$message = str_replace("<b>", "", $message);
$message = str_replace("</b>", "", $message);
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&uuml;ltig ist!";
}
else
{
mail($bestaetigungsmail_adresse, $bestaetigungsmail_betreff,
$message,"From: backupscript@{$_SERVER['SERVER_NAME']}\r\n" . "Reply-To: backupscript@{$_SERVER['SERVER_NAME']}\r\n")
or die("FEHLER: Mail konnte wegen eines unbekannten Fehlers nicht versendet werden");
echo "<br>Best&auml;tigungsmail wurde erfolgreich versandt!";
}
}
?>

Bitte ändert  im Quellcode folgende 3 Zeilen:

$db_name = "DeineDatenBank";
$db_passwd = "DeinDatenBankPasswort";

$bestaetigungsmail_adresse = "DeineMailAdresse";

Den Datenbanknamen und das Datenbankpasswort entnehmt Ihr bitte in eurem KAS unter DATENBANK und setzt es in die jeweiligen Felder "DeineDatenBank" und "DeinDatenBankPasswort". Bei "DeineMailAdresse" setzt bitte eure E-Mail Adresse ein, wohin Ihr die Bestätigungsmail haben möchten.

Solltet Ihr über einen eigenen Managed Server (kein Shared Server Tarif) verfügen, so nennt Ihr die PHP-Datei bitte „db_backup.php“ (ohne das „x“ am Ende). Auf einem ManagedServer ist der exec-Befehl i.d.R. freigeschalten, so dass eine Umschaltung auf PHP-CGI nicht erforderlich ist. Sollte Ihr aber trotzdem eine Fehlermeldung erhalten beim testen des Scriptes, so schickt Ihr dem Support eine E-Mail, nennt eure Kundennummer, die letzten 3 Zeichen vom Passwort der MembersArea und Sie schalten den Befehl für Euren ManagedServer frei.

4. Ruft nun die Url http://www.ihre-adresse-i....de/backup/db_backup.phpx auf. Das Backupscript wird gestartet, legt eine Datenbanksicherung Eurer MySQL-Datenbank an und kopiert diese als gepackte Datei mit dem Namen z.B. dumpDATUM.sql.gz in den Ordner „backup“.

Es ist normal, dass das DB-Backup viel kleiner ist als Euch die Datenbankgröße im PHPMyAdmin angezeigt wird.
Quelle:
 

Benutzer gerade Online

Wir haben 10 Gäste online

Empfehlungen / Hilfe

video-filme joomla-schweiz
joomla-galerien joomla-downloads
joomla-org-englisch easyjoomla
joomla-deutschland joomla-templates-royal
joomlaportal-de

Our Partner Sites!

filmanleitungen

CyberGurke

xing

Unterstützen

Finden Sie das unsere Seite eine gute Sache darstellt? Helfen Sie mit, dass wir diesen Standard beibehalten können.
Ihre Spende hilft uns!

spenden

Vielen Dank für Ihre Unterstützung!