Website Backup: Tool für FTP und MySQL-Daten

22. August 2009

Bislang habe ich mir über ein Backup meiner Webseiten eigentlich nur wenig Gedanken gemacht und immer gehofft, dass schon alles gut gehen wird. Wenn dann aber das Kind doch mal in den Brunnen gefallen ist, dann macht man sich doch seine Gedanken, wie man in Zukunft seine Daten effizient und regelmäßig sichert, so dass man einen alten Stand einer Website ganz einfach wiederherstellen kann. Ziel sollte es also sein, dass ein Backup sämtlicher Webseiten (Files und MySQL-Datenbank) auf jedem Webspace mit nur einem Knopfdruck oder sogar regelmäßig automatisch geschieht.

Dazu habe ich nun einmal mehrere Stunden geopfert und habe mich durch die Lösungen im Internet gequält. Ein Programm, das dieses beherrscht scheint SiteVault zu sein. Dieses macht auch einen vernünftigen Eindruck, kostet leider aber auch 99 Dollar für unbegrenzt viele Webseiten. Eine All-in-one Open Source Lösung konnte ich nicht finden. Durch geschicktes Kombinieren mehrere Angebote kann man allerdings das gleiche auch umsonst erhalten. Und das geht so.

Zunächst muss man regelmäßig die Datenbank auf dem jeweiligen Webspace sichern, danach holt man sich sämtliche Dateien über FTP. Für die Datenbanksicherung wird gerne das Tool MySQLDumper empfohlen, da man mit diesem auch große Datenbanken problemlos sichern kann. Für kleinere Datenmengen reicht aber auch vollkommen das folgende Script:


<?php
$datenbankhost = "Hostname (in der Regel: localhost)";
$datenbankuser = "Username";
$datenbankpasswort = "Passwort";
$datenbankname = "Datenbankname";
$connect = @mysql_connect($datenbankhost, $datenbankuser, $datenbankpasswort);
if (!$connect) {
die(mysql_error());
}
mysql_select_db($datenbankname);
$f = fopen("Pfad/Datenbankname.sql", "w");
$tabellen = mysql_list_tables($datenbankname);
while ($zellen = mysql_fetch_array($tabellen)) {
$table = $zellen[0];
$res = mysql_query("SHOW CREATE TABLE `$table`");
if ($res) {
$create = mysql_fetch_array($res);
$create[1] .= ";";
$line = str_replace("\n", "", $create[1]);
fwrite($f, $line."\n");
$data = mysql_query("SELECT * FROM `$table`");
$num = mysql_num_fields($data);
while ($row = mysql_fetch_array($data)){
$line = "INSERT INTO `$table` VALUES(";
for ($i=1;$i<=$num;$i++) {
$line .= "'".mysql_real_escape_string($row[$i-1])."', ";
}
$line = substr($line,0,-2);
fwrite($f, $line.");\n");
}
}
}
fclose($f);
?>

Die Platzhalter muss man nur mit den eigenen Datenbankdaten ersetzen. Um den Pfad herauszubekommen, führt man einfach eine php-Datei auf dem Webspace mit dem folgenden Inhalt aus:


<?php
echo $_SERVER['DOCUMENT_ROOT'];
?>

Nun lädt man die php-Datei für den MySQL-Dump auf seinen Webspace und ruft sie im Browser auf. Falls ein Fehler angezeigt wird, dass mysql_list_tables deprecated ist, einfach den folgenden Code an den Anfang der Datei stellen:

ini_set(’display_errors’, on );
error_reporting(E_ALL);

Jetzt sollte die komplette Datenbank in das gewählte Verzeichnis auf dem Webspace geschrieben worden sein. Diese Datei sollte man nun einfach regelmäßig ausführen lassen. Dazu bietet sich, wenn man keine eigenen Cron Jobs auf dem Server ausführen kann, der kostenlose Service auf www.cronjob.de an.

Als nächstes muss man also nur noch sämtliche Dateien auf dem Webspace via FTP herunterziehen. Dafür eignet sich zum Beispiel das Programm Cobian Backup. Man kann dort alle seine Webseitenprofile hinterlegen und auch auswählen, welche Dateien man herunterladen will bzw. welche ausgeschlossen werden sollen. Dann kann man die Downloads manuell oder auch nach einem automatischen Zeitplan starten. Wenn man dann ganz auf Nummer sicher gehen will, zieht man sich die heruntergeladenen Dateien noch auf einen USB-Stick oder eine separate Festplatte.

So kann man in Zukunft ruhig schlafen und braucht vor einem Hack der eigenen Webseite oder einem Servercrash eigentlich keine Angst mehr zu haben.



2 Antworten auf “Website Backup: Tool für FTP und MySQL-Daten”

  1. Markus schreibt:

    Eine schöne Sammlung von Shareware-Tools und Vollversionen findet man auch auf download-seite.de. Da ist ebenfalls der Download kostenlos.

  2. Daniel schreibt:

    Super Artikel genau danach habe ich gesucht, da mir das manuelle Backup von mehreren seiten lässtig wurde.

Einen Kommentar abgeben:

Weitere Beiträge zum Thema: