Inhaltsverzeichnis

Inkrementelle Backups in mcontrol

Es gibt zwei Programme, mittels derer das Backup in mcontrol erstellt wird:

Die Einstellung in der Konfiguration heißt BACKUPSYSTEM und findet sich am Anfang von mcontrol.sh oder kann auch in jeder Servereinstellungs-Datei eingetragen werden.

Wenn man BACKUPSYSTEM auf NONE oder irgendwas ungleich rdiff oder tar einstellt, wird kein Backup erstellt.

Standardwert bei Version 0.0.11 ist rdiff.

Mit rdiff-backup (bevorzugt)

Verwendet immer denselben Backupordner und legt dort seine differenziellen Backups ab. Man kann sehr einfach einen bestimmten Zeitpunkt wiederherstellen. Diese Einstellung wird für „Anfänger“ empfohlen.
Ausserdem verbraucht rdiff sehr viel weniger Platz für die Backups, da es lediglich die Unterschiede von Dateien komprimiert ablegt, während tar die ganze Datei erneut ablegt. Wenn also tar im Durschschnitt für jedes neue differenzielle Backup zwischen 30-80 MiB verbraucht, verbraucht rdiff-backup zwischen 3-11 MiB :)

Es wird bei Verwendung von rdiff-backup ein Quota verwendet und arbeitet seit der Version 0.0.11 auf 1 MiB genau. Bei Überschreibung wird solange das jeweils älteste Backup gelöscht, bis das Quota wieder unterschritten ist.

Weitere Informationen zu rdiff-backup gibt es hier: https://www.nongnu.org/rdiff-backup/.

Über die Variable RDIFF_EXCLUDES kann man bestimmte Pfade/Verzeichnisse/Dateien aus dem Backup ausschließen; dabei werden die angegebenen Pfade relativ zu ${SERVERDIR} ausgewertet.

Zum Beispiel würden bei folgenden Einträgen die server.properties und die Karte mapx im Verzeichnis der Servers nicht gesichert werden:

RDIFF_EXCLUDES=(mapx server.properties)

Mit tar

Beim ersten Start mit dem Parameter Backup jeden Tag wird ein Vollbackup des Servers erstellt, für den Rest des Tages dann nur noch inkrementelle Backups (also nur das, was sich im Vergleich zum vorherigen Backup auch geändert hat).

Wenn das Quota überschritten ist werden solange die ältesten, kompletten Tagesbackups gelöscht, bis genug Platz frei ist.

tar

Vorteile:

Nachteile:

Hierfür wurde der quota-Support entfernt.

Backupverzeichnis bei Verwendung von tar

Als Beispiel eine Verzeichnisstruktur für Backups, die alle 30 Minuten gemacht werden:

/home/minecraft-server/user/backups/server1/2011-07-18/
                                                       servername.snap
                                                       servername.00-00-00.full.tar
                                                       servername-00-30-00.inc.tar
                                                       servername-01-00-00.inc.tar
                                                       servername-01-30-00.inc.tar
                                                       ...

/home/minecraft-server/user/backups/server1/2011-07-19/
                                                       servername.snap
                                                       servername.21-00-00.full.tar
                                                       servername-21-30-00.inc.tar
                                                       servername-22-00-00.inc.tar
                                                       servername-22-30-00.inc.tar
                                                       

Die .snap-Datei wird nur von tar verwendet um Metainformationen zu Dateien zu speichern um herauszufinden welche sich geändert haben und gesichert werden müssen.

Und wie funktioniert der Restore?

Bei Verwendung von BACKUPSYSTEM="tar"

https://www.gnu.org/software/automake/manual/tar/Incremental-Dumps.html

Bei Verwendung von BACKUPSYSTEM="rdiff"

In mcontrol selbst kann man sich nur die bisher gemachten inkrementellen Backups ansehen:

mcontrol.sh file/to/settings/serverx listbackups

Zum Restore verweise ich auf die Manpage:
Die Manpage von rdiff-backup ist ziemlich ausführlich und mit Beispielen gespickt; es ist also nicht notwendig bestimmte Funktionen ins Script einzubauen.

Für das Restore sollte man also am besten direkt das Kommando rdiff-backup verwenden :)