Skip to content

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

License

Notifications You must be signed in to change notification settings

minecraft-gilde/backup-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

backup-tools

Shell-Skripte für Minecraft-Server-Backups mit Fokus auf Streaming, Retry bei Dateiänderungen, optionalem SFTP-Upload und schneller Wiederherstellung.

Enthaltene Skripte

  • backup_stream_retry.sh
    • Erstellt ein tar.gz-Backup direkt als Stream (ohne große Zwischen-Datei).
    • Erkennt file changed as we read it und hängt betroffene Dateien in Nachläufen erneut an.
    • Nutzt optional pigz für schnellere Kompression.
    • Drosselt CPU-/I/O-Last per nice/ionice.
    • Optionaler Aufruf eines Upload-Skripts (verzögert) und lokale Aufbewahrungslogik.
  • upload-latest-backup.sh
    • Lädt das neueste Backup per SFTP hoch (lftp).
    • Protokolliert in ein Logfile.
    • Löscht auf dem SFTP-Ziel das älteste Backup (außer dem gerade hochgeladenen).
  • recovery.sh
    • Interaktive Wiederherstellung eines Backups.
    • Kann das neueste oder ein manuell gewähltes Backup einspielen.
    • Leert vorher das Zielverzeichnis (Inhalt) und setzt anschließend optional den Besitzer.

Voraussetzungen

  • Linux-System mit Bash
  • Standard-Tools: tar, find, grep, sed, awk, sort, stat
  • Optional empfohlen: pigz, ionice
  • Für Upload: lftp mit SFTP-Unterstützung
  • Ausreichende Rechte für:
    • Zugriff auf Server- und Backup-Verzeichnisse
    • Schreiben in die konfigurierten Log-Dateien
    • gegebenenfalls chown bei Wiederherstellung

Konfiguration

Alle Skripte enthalten feste Konfigurationsblöcke am Anfang. Passe mindestens folgende Werte an:

  • In backup_stream_retry.sh
    • SERVERVERZEICHNIS
    • BACKUP_VERZEICHNIS
    • UPLOAD_SCRIPT
    • LOGFILE
    • optional: RETENTION_DAYS, RETRY_BATCH, GZ_LEVEL, PIGZ_THREADS, Include-Listen
  • In upload-latest-backup.sh
    • BACKUP_VERZEICHNIS
    • SFTP_HOST, SFTP_PORT, SFTP_USER, SFTP_PASS, SFTP_REMOTE_DIR
    • LOGFILE
  • In recovery.sh
    • ZIELVERZEICHNIS
    • BACKUP_VERZEICHNIS
    • gegebenenfalls gewünschter Besitzer (mc3 im Skript)

Nutzung

Skripte ausführbar machen:

chmod +x backup_stream_retry.sh upload-latest-backup.sh recovery.sh

Backup erstellen:

./backup_stream_retry.sh

Neueste Datei per SFTP hochladen:

./upload-latest-backup.sh

Backup wiederherstellen (interaktiv):

./recovery.sh

Automatisierung (Beispiel mit cron)

Täglich um 04:30 Uhr Backup starten:

30 4 * * * /pfad/zu/backup-tools/backup_stream_retry.sh

Hinweis: Das Backup-Skript startet den Upload (wenn konfiguriert) 15 Minuten verzögert im Hintergrund.

Logs und Fehleranalyse

  • Backup-Log: konfiguriert über LOGFILE in backup_stream_retry.sh
  • Upload-Log: konfiguriert über LOGFILE in upload-latest-backup.sh

Bei Problemen zuerst prüfen:

  • Pfade und Rechte
  • verfügbare Abhängigkeiten (pigz, lftp, ionice)
  • Erreichbarkeit des SFTP-Ziels
  • ausreichend Speicherplatz im Backup-Verzeichnis

Sicherheitshinweise

  • In upload-latest-backup.sh wird das SFTP-Passwort aktuell im Skript gespeichert.
    • Für produktive Nutzung besser über sichere Mechanismen lösen (z. B. Umgebungsvariablen, Secret-Store, SSH-Key-basierter Zugriff).
  • recovery.sh löscht den Inhalt des Zielverzeichnisses vor dem Entpacken.
    • Nur mit korrektem ZIELVERZEICHNIS ausführen.

About

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

Topics

Resources

License

Stars

Watchers

Forks

Languages