WordPress (und andere Installationen) sichern
Wir stellen mit Freude fest, dass viele Benutzer ihre eigenen Homepages sichern. Insbesondere WordPress-Nutzer verwenden dafür eines der vielen Plugins, die genau für diesen Zweck angeboten werden, wie BackupBuddy, UpdraftPlus oder BackWPup.
Diese Plugins erzeugen eine Sicherung der Datenbank und verpacken diese Sicherung gemeinsam mit allen Nutzdaten der WordPress-Installation in eine komprimierte Datei. Je nach Konfiguration wird bei jedem Backuplauf eine neue Datei erstellt. Unabhängig davon, welches dieser Plugins verwendet wird, können dabei folgende Fehler auftreten:
- Ist die Datenbank sehr groß, bricht das Sichern der Datenbank ab.
- Gibt es sehr viele Dateien zu sichern (z. B. Bilder) bricht das Komprimieren ab.
- Häufig werden alte Backups nicht gelöscht, was dazu führt, dass zu viel Speicherplatz belegt wird.
- Das Rücksichern dieser Backups ist häufig nicht so trivial wie das Erzeugen der Backups.
Gerade die ersten 3 Fehler, haben Ihre Ursache vor allem in der Laufzeit von PHP-Skripten. Um diese zu umgehen, kann das Backup direkt im System durchgeführt werden. In diesem Artikel zeigen wir, wie man mit Bordmitteln regelmäßig und automatisiert eine Kopie der WordPress-Installation erstellen kann und wie Inhalte aus dem Backup wiederhergestellt werden können, falls notwendig.
Grundlegendes zum Thema Backup
Die Telekom führt keine gezielten Backups einer Homepage durch. Stattdessen werden Dateien redundant gespeichert, was bedeutet, dass sie auf mehreren physikalischen Speicherträgern abgelegt sind. Im Falle, dass einer der Speicherträger einen Defekt hat, kann dieser ausgetauscht werden und erhält automatisch von den anderen Datenträgern die gespeicherten Daten wieder. So ist das Risiko des Datenverlustes relativ gering.
Trotzdem sollten man individuelle Backups erstellen. Es könnte passieren, dass ein Update der WordPress-Installation fehlschlägt oder der Blog gehackt wird. In solchen Fällen wäre eine schnelle Wiederherstellung aus einer Sicherung möglich.
Die folgende Anleitung erzeugt eine Sicherung innerhalb des eigenen Speicherplatzes. Sollten, zum Beispiel, die Homepage gekündigt und gelöscht werden, ist auch das Backup weg. Möchte man auch das verhindern, braucht man externen Speicherplatz (zum Beispiel eine Cloud-Lösung oder eine Software auf Ihrem PC), die man per sFTP oder SSH anbindet und die automatisiert Backups anlegt und entsprechende Einstellungsoptionen bereits mitbringen.
Tipp zur Wahl des Intervalls: Werden jeden Tag neue Inhalte eingestellt, sollte man auch jeden Tag Backups durchführen. Werden aber nur sehr selten Änderungen an der Homepage durchgeführt, reichen auch seltene Sicherungen. Die unten beschriebenen Cronjobs lassen sich auch stoppen und dann nur bei Bedarf über den Play-Button manuell ausführen.
Zielverzeichnisse erzeugen
Wir benötigen drei Verzeichnisse
- backup
- geloeschtebackups
- datenbank
Diese Verzeichnisse werden nicht, wie man es gewohnt ist, im Verzeichnis public_html angelegt, sondern eine Ebene höher. Dies hat den Vorteil, dass die Verzeichnisse nicht von außen zugänglich sind. Die Arbeit mit den Daten und das Anlegen der entsprechenden Verzeichnisse ist nur über den sFTP-Zugang oder den Dateimanager möglich.
Datenbank-Sicherung erzeugen
Im Homepage Center unter "Website / Cronjobs" auf "Neuer Cronjob" klicken. Hier die Eingabefelder befüllen:
Cronjob-Name: Datenbank sichern
Cronjob-Skript: mysqldump -h mysqla.service -u SQL-Benutzername -pSQLPasswort Datenbankname > /home/www/datenbank/dateiname.sql
(hier natürlich die Benutzname, Passwort und Datenbankname durch die persönlichen Daten ersetzen, siehe MySQL Datenbank per SSH sichern / rücksichern)
Ausführungssequenz: jeden Tag um 2 Uhr
(wobei man hier natürlich frei konfigurieren kann. Man kann den Job jeden Montag oder alle Wochen ausführen lassen, ganz wie man möchte)
Cronjob aktivieren: Haken setzen.
Mit "Speichern" wird die Einstellung dann übernommen. Manchmal wird die Ausführungssequenz nicht übernommen. Diese bitte nach dem Speichern noch einmal prüfen.
Jetzt einen weiteren Cronjob erzeugen:
Cronjob-Name: Datenbank kopieren
Cronjob-Skript: rsync -avz --delete -b --backup-dir=/home/www/geloeschtebackups /home/www/datenbank /home/www/backup
Ausführungssequenz: jeden Tag um 3 Uhr
(wobei man hier natürlich frei konfigurieren kann. Man kann den Job jeden Montag oder alle Wochen ausführen lassen, ganz wie man möchte)
Cronjob aktivieren: Haken setzen.
Dateien sichern
Es wird ein neuer Cronjob erzeugt, mit folgendem Inhalt:
Cronjob-Name: Dateien sichern
Cronjob-Skript: rsync -avz --delete -b --backup-dir=/home/www/geloeschtebackups /home/www/public_html/wordpress /home/www/backup
(/home/www/public_html/wordpress muss gegen das Verzeichnis ausgetauscht werden, in dem die zusichernden Daten liegen.)
Ausführungssequenz: jeden Tag um 3 Uhr
(wobei man hier natürlich frei konfigurieren kann. Man kann den Job jeden Montag oder alle Wochen ausführen lassen, ganz wie man möchte)
Cronjob aktivieren: Haken setzen.
Mit "Speichern" wird die Einstellung dann übernommen. Manchmal wird die Ausführungssequenz nicht übernommen. Diese bitte nach dem Speichern noch einmal prüfen.
Dateien wiederherstellen
Möchte man Dateien aus dem "Backup" wiederherstellen, verbindet man sich mit dem Server per SSH, sFTP oder dem Dateimanager und kann auf die Ordner zugreifen. Im Ordner "backup" sind alle Dateien aus dem letzten Durchlauf der Sicherung vorhanden (bei täglichen Sicherungen entspricht dies dem Zustand von gestern). Im Ordner "gelöschtebackups" befinden sich die Dateien, die zwischen dem letzten und dem vorletzten Backup geändert wurden. Es liegen somit immer zwei Versionen der Dateien vor.