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.
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)
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.
Vorteile:
Nachteile:
Hierfür wurde der quota-Support entfernt.
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.
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 :)