Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

backup-tools

Shell-Tools für Backups einer einzelnen Minecraft-Instanz auf Linux mit Remote-Speicher über rclone.

Die Skripte erstellen ein laufendes Live-Backup, laden das Archiv in ein rclone-Remote hoch, verifizieren die hochgeladenen Begleitdateien gegen den Remote-Inhalt, verhindern kollidierende Schreibläufe per Lockdatei, entfernen lokale Temp-Dateien wieder und können ein Backup später direkt vom Remote zurückspielen. Beim Restore wird die heruntergeladene Datei zusätzlich gegen die Remote-.sha256 geprüft, bevor Inhalte im Zielverzeichnis überschrieben werden.

Das Backup wird als Benutzer minecraft orchestriert. Nur der feste, root-eigene Archive-Reader läuft über eine eingeschränkte sudo-Regel als Instanzbenutzer (zum Beispiel mc1), damit auch von Folia mit Modus 0600 neu angelegte Dateien wie world/level.dat vollständig gesichert werden. Kompression, Checksummen, Metadaten, rclone, Retention, Logging und Cron bleiben im Kontext von minecraft.

Dokumentation

Kurzstart

Automatisch (empfohlen)

Nach der Einrichtung von rclone fuer den Backup-Benutzer startet ein Assistent die komplette lokale Installation:

sudo bash scripts/install.sh

Der Installer fragt Instanzpfad, Benutzer und Remote-Ziel ab, installiert das Projekt root-eigen unter /opt/minecraft-backup-tools, erzeugt Konfiguration und sudoers-Regel, richtet Temp- und Log-Verzeichnisse ein und prueft die passwortlose Reader-Kette. Optional richtet er Cron ein und fuehrt den vollstaendigen Dry-Run aus. Vorhandene Zielkonfigurationen werden ohne ausdrueckliches --force nicht ersetzt.

Manuell

  1. Beispielkonfiguration kopieren:

    cp config/minecraft-backup.conf.example config/minecraft-backup.conf
  2. rclone installieren und einen Remote einrichten:

    Siehe docs/rclone-einrichtung.md.

  3. Reader root-eigen installieren und für minecraft -> mc1 in sudoers freigeben:

    sudo install -o root -g root -m 755 \
      scripts/archive-reader.sh \
      /usr/local/sbin/minecraft-backup-reader
    sudo visudo -f /etc/sudoers.d/minecraft-backup
    # Inhalt: minecraft ALL=(mc1) NOPASSWD: /usr/local/sbin/minecraft-backup-reader
    sudo chmod 440 /etc/sudoers.d/minecraft-backup
    sudo visudo -cf /etc/sudoers.d/minecraft-backup
  4. Backup starten:

    chmod +x scripts/backup.sh scripts/recovery.sh
    ./scripts/backup.sh --config ./config/minecraft-backup.conf
  5. Verfügbare Backups anzeigen:

    ./scripts/recovery.sh --config ./config/minecraft-backup.conf --list

Repository-Struktur

backup-tools/
  config/
    minecraft-backup.conf.example
  docs/
    projektdokumentation.md
    rclone-einrichtung.md
  lib/
    *.sh
  scripts/
    archive-reader.sh
    backup.sh
    install.sh
    recovery.sh

About

Backup-Skripte und Tools für die Server-Infrastruktur der Minecraft-Gilde

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages