Zum Hauptinhalt springen

Datensicherungen und Wiederherstellung

Sicherungen

Nine erstellt täglich Sicherungen Ihres Managed Servers. Diese Sicherungen werden verschlüsselt auf unsere Backupsysteme in zwei voneinander unabhängige Rechenzentren übertragen und für 7 Tage vorgehalten.

Mittels des Ihnen zur Verfügung stehenden Benutzers www-data können Sie auf die Sicherungen zugreifen und bei Bedarf Daten wiederherstellen.

Was ist in der Sicherung enthalten?

Die Sicherung enthält alle Nutzdaten Ihrer Umgebungen. Dies schliesst die Daten aller www-* Benutzer ein. Zudem werden die täglichen Datenbanksicherungen ebenfalls auf unsere Backupsysteme übertragen.

Gängige Cache- und temporäre Verzeichnisse werden von der Sicherung ausgenommen:

home/www-*/**/wp-content/cache/*
home/www-*/**/wp-content/temp/*
home/www-*/**/cache/com_content/*
home/www-*/**/cache/com_modules/*
home/www-*/**/cache/com_languages/*
home/www-*/**/cache/page/*
home/www-*/**/generated/metadata/*
home/www-*/**/generated/code/*
home/www-*/**/var/cache/*
home/www-*/**/var/page_cache/*
home/www-*/**/typo3temp/Cache/*

Auf Wunsch definieren wir gerne weitere Ausnahmen.

Wie kann ich auf die Sicherungen zugreifen?

Mit dem Befehl sudo nine-backup snapshots können Sie die einzelnen Sicherungen Ihres Servers anzeigen lassen:

www-data@nine1:~ $ sudo nine-backup snapshots
repository afe45457 opened successfully, password is correct
ID Time Host Tags Paths
----------------------------------------------------------------
bf8f7d8c 2022-01-25 05:36:03 nine01-test nine01-test /
/boot

bccdd6dd 2022-01-26 05:36:03 nine01-test nine01-test /
/boot

d62431f7 2022-01-27 05:36:02 nine01-test nine01-test /
/boot

80d625a6 2022-01-28 05:36:03 nine01-test nine01-test /
/boot

1eb6a19f 2022-01-29 05:36:02 nine01-test nine01-test /
/boot

5e801eaf 2022-01-30 05:36:03 nine01-test nine01-test /
/boot

abdb5f95 2022-01-31 05:36:03 nine01-test nine01-test /
/boot
----------------------------------------------------------------
7 snapshots

Mit dem Befehl sudo nine-backup mount-repository wird eine Verbindung zu unserem Backupsystem hergestellt und die einzelnen Sicherungen unter dem Pfad /mnt/restore.XYZ zur Verfügung gestellt.

www-data@nine01-test:~ $ sudo nine-backup mount-repository
repository afe45457 opened successfully, password is correct
Now serving the repository at /mnt/restore.Eh9lZt0Rxh
When finished, quit with Ctrl-c or umount the mountpoint.

Da dieser Befehl im Vordergrund verbleibt, kann die Shell-Umgebung, in der Sie diesen Befehl ausführen, nicht für weitere Arbeiten genutzt werden.

Um auf die Sicherungen zuzugreifen ist es daher erforderlich, dass Sie eine weitere Verbindung zum System herstellen.

Zugriff per Snapshot ID, Datum oder Tag

Nach Ausführung des mount-repository wird das temporäre Verzeichnis angezeigt, in welchem die Sicherung nun mit Leseberechtigung verfügbar ist:

Now serving the repository at /mnt/restore.Eh9lZt0Rxh

www-data@nine01-test:/mnt/restore.Eh9lZt0Rxh $ ls -la
total 0
dr-xr-xr-x 1 root root 0 Jan 31 14:50 .
drwxr-xr-x 6 root root 86 Jan 31 14:50 ..
dr-xr-xr-x 1 root root 0 Jan 31 14:50 hosts
dr-xr-xr-x 1 root root 0 Jan 31 14:50 ids
dr-xr-xr-x 1 root root 0 Jan 31 14:50 snapshots
dr-xr-xr-x 1 root root 0 Jan 31 14:50 tags

Im Verzeichnis ids finden Sie alle existierenden Snapshots anhand der ID, wie Sie in nine-backup snapshots angezeigt wurde.

Für den alltäglichen Gebrauch ist das Verzeichnis snapshots am einfachsten zu nutzen. Dieses enthält Ordner, die nach dem Erstellungsdatum der Sicherungen benannt wurden.

www-data@nine01-test:/mnt/restore.Eh9lZt0Rxh/snapshots $ ls -la
total 0
dr-xr-xr-x 1 root root 0 Jan 31 14:50 .
dr-xr-xr-x 1 root root 0 Jan 31 14:50 ..
dr-xr-xr-x 2 root root 0 Jan 25 05:36 2022-01-25T05:36:03+01:00
dr-xr-xr-x 2 root root 0 Jan 26 05:36 2022-01-26T05:36:03+01:00
dr-xr-xr-x 2 root root 0 Jan 27 05:36 2022-01-27T05:36:02+01:00
dr-xr-xr-x 2 root root 0 Jan 28 05:36 2022-01-28T05:36:03+01:00
dr-xr-xr-x 2 root root 0 Jan 29 05:36 2022-01-29T05:36:02+01:00
dr-xr-xr-x 2 root root 0 Jan 30 05:36 2022-01-30T05:36:03+01:00
dr-xr-xr-x 2 root root 0 Jan 31 05:36 2022-01-31T05:36:03+01:00
lrwxrwxrwx 1 root root 0 Jan 31 05:36 latest -> 2022-01-31T05:36:03+01:00

Sie haben Zugriff auf alle Daten, die Ihnen auch in der aktuellen Produktionsumgebung des Systems zur Verfügung stehen.

Wiederherstellung von Daten

Ausgehend von den angezeigten Verzeichnissen können Sie den Verzeichnisbaum hinab bis hin zum gewünschten Verzeichnis wechseln und eine Prüfung der Inhalte vornehmen.

www-data@nine01-test:/mnt/restore.Eh9lZt0Rxh/snapshots $ cd latest/home/www-data/wp-dev/
www-data@nine01-test:/mnt/restore.Eh9lZt0Rxh/snapshots/latest/home/www-data/01 $ ls -la
total 170
drwxr-xr-x 2 www-data www-data 0 Apr 12 2021 .
drwxr-xr-x 2 www-data www-data 0 Jan 27 08:55 ..
-rw-r--r-- 1 www-data www-data 235 Aug 28 2019 .htaccess
-rw-r--r-- 1 www-data www-data 420 Dec 1 2017 index.php
-rw-r--r-- 1 www-data www-data 19935 Jun 19 2019 license.txt
-rw-r--r-- 1 www-data www-data 8538 Jun 19 2019 liesmich.html
-rw-r--r-- 1 www-data www-data 7447 Dec 18 2019 readme.html
drwxr-xr-x 2 www-data www-data 0 Aug 28 2019 .well-known
-rw-r--r-- 1 www-data www-data 6919 Jan 12 2019 wp-activate.php
drwxr-xr-x 2 www-data www-data 0 Jun 19 2019 wp-admin
-rw-r--r-- 1 www-data www-data 369 Dec 1 2017 wp-blog-header.php
-rw-r--r-- 1 www-data www-data 2283 Jan 21 2019 wp-comments-post.php
-rw-rw-rw- 1 www-data www-data 3721 Aug 28 2019 wp-config.php
-rw-r--r-- 1 www-data www-data 3396 Jun 19 2019 wp-config-sample.php
drwxr-xr-x 2 www-data www-data 0 Nov 21 2019 wp-content
-rw-r--r-- 1 www-data www-data 3847 Jan 9 2019 wp-cron.php
drwxr-xr-x 2 www-data www-data 0 Jun 19 2019 wp-includes
-rw-r--r-- 1 www-data www-data 2502 Jan 16 2019 wp-links-opml.php
-rw-r--r-- 1 www-data www-data 3306 Dec 1 2017 wp-load.php
-rw-r--r-- 1 www-data www-data 39551 Jun 10 2019 wp-login.php
-rw-r--r-- 1 www-data www-data 8403 Dec 1 2017 wp-mail.php
-rw-r--r-- 1 www-data www-data 18962 Mar 28 2019 wp-settings.php
-rw-r--r-- 1 www-data www-data 31085 Jan 16 2019 wp-signup.php
-rw-r--r-- 1 www-data www-data 4764 Dec 1 2017 wp-trackback.php
-rw-r--r-- 1 www-data www-data 3068 Aug 17 2018 xmlrpc.php

Alle Operationen, die keine Veränderungen der Dateien der Sicherungen vornehmen, können auf die Daten aus der Sicherung angewendet werden. So lassen sich einfach Unterschiede zwischen einer Sicherung und der aktuellen Version feststellen:

diff -w /home/www-data/wp-dev/.htaccess /mnt/restore.Eh9lZt0Rxh/snapshots/latest/home/www-data/wp-dev/.htaccess
1c1
< # This is a restore test entry
---
>
md5sum /home/www-data/wp-dev/.htaccess /mnt/restore.Eh9lZt0Rxh/snapshots/latest/home/www-data/wp-dev/.htaccess
929e2c784c0f52033099b21751342cae /home/www-data/wp-dev/.htaccess
093cc2d0ddff4121504ec86c32943a28 /mnt/restore.Eh9lZt0Rxh/snapshots/latest/home/www-data/wp-dev/.htaccess

Um Daten zurückzuspielen, können die Befehle cat, cp oder rsync verwendet werden, in Abhängigkeit des Datentyps oder der Datenmenge.

In unserem Beispiel empfiehlt sich der Einsatz von cat oder cp:

cat /mnt/restore.Eh9lZt0Rxh/snapshots/latest/home/www-data/wp-dev/.htaccess > /home/www-data/wp-dev/.htaccess

oder

cp /mnt/restore.Eh9lZt0Rxh/snapshots/latest/home/www-data/wp-dev/.htaccess /home/www-data/wp-dev/.htaccess

Sollen ganze Ordner oder Verzeichnisstrukturen zurück gespielt werden, so empfiehlt sich der Einsatz von rsync. Der Parameter -n führt zunächst einen Testlauf aus, ohne Veränderungen an Daten vorzunehmen. So lässt sich kontrollieren, ob der Befehl die gewünschte Operation ausführt. Zu Testzwecken wurden die Inhalte des Verzeichnisses "wp-dev" gelöscht.

rsync -avgn /mnt/restore.Eh9lZt0Rxh/snapshots/latest/home/www-data/wp-dev/ /home/www-data/wp-dev/
sending incremental file list
index.php
license.txt
liesmich.html
readme.html
wp-activate.php
wp-blog-header.php
..
..
wp-includes/widgets/class-wp-widget-rss.php
wp-includes/widgets/class-wp-widget-search.php
wp-includes/widgets/class-wp-widget-tag-cloud.php
wp-includes/widgets/class-wp-widget-text.php

sent 56,042 bytes received 6,447 bytes 124,978.00 bytes/sec
total size is 45,005,601 speedup is 720.22 (DRY RUN)

Ergibt die Kontrolle der Ausgabe das erwünschte Ergebnis, so kann der Parameter -n vom rsync Aufruf entfernt werden.

Abschluss der Arbeiten

Nachdem Sie den Datenabgleich bzw. die Wiederherstellung abgeschlossen haben, kann der aktive mount-repository Prozess beendet werden. Wechseln Sie zunächst in der weiteren Shell die Sie geöffnet haben, zurück in das Stammverzeichnis des Benutzers:

www-data@nine01-test:/mnt/restore.Eh9lZt0Rxh/snapshots/latest $ cd
www-data@nine01-test:~ $

Anschliessend kann der mount-repository Prozess beendet werden:

www-data@nine01-test:~ $ sudo nine-backup mount-repository
repository afe45457 opened successfully, password is correct
Now serving the repository at /mnt/restore.Eh9lZt0Rxh
When finished, quit with Ctrl-c or umount the mountpoint.
signal interrupt received, cleaning up

Sollten Sie diesen Schritt nicht ausführen, so kann es vorkommen dass ein nicht erreichbarer "Mountpunkt" zurück bleibt:

cannot access '/mnt/restore.Eh9lZt0Rxh': Transport endpoint is not connected

Hierbei besteht kein Anlass zur Sorge, der nicht funktionale Mountpunkt wird automatisch vom System entfernt und hat keinerlei Einfluss auf die Sicherung des Systems oder den Zugriff auf die Daten innerhalb der Sicherung.