Datenverlust ist der Albtraum jedes Admins. In diesem Beitrag zeige ich euch ein robustes Bash-Skript, das eure Dienste kurzzeitig stoppt, ein konsistentes Backup erstellt, alte Backups automatisch löscht und optional das Archiv verschlüsselt.
Grenzen und Zielgruppe dieser Lösung
Dieser Ansatz implementiert eine Cold-Backup-Strategie. Das bedeutet, dass die Datenkonsistenz durch eine kurze geplante Downtime der Container gewährleistet wird. Diese Methode ist bewusst generalistisch gehalten, damit sie für nahezu jeden Docker-Stack funktioniert, ohne dass tiefgreifende Kenntnisse über die spezifischen Sperrmechanismen einzelner Datenbanken erforderlich sind. Natürlich existieren im Enterprise-Umfeld komplexere Zero-Downtime-Lösungen. Für Homelabs, kleine Projekte und Privatanwender bietet das hier vorgestellte Skript den optimalen Kompromiss: Es ist universell einsetzbar, wartungsarm und garantiert konsistente Daten – auch wenn dafür nachts für wenige Sekunden / Minuten die Dienste pausieren.
1. Die Strategie
Die Idee ist simpel, aber effektiv: Ein “Cold Backup”. Wir nehmen eine kurze Downtime (oft nur wenige Minuten) in Kauf, um Datenkonsistenz zu garantieren. Ein laufender Datenbank-Container könnte während des Kopiervorgangs schreiben, was zu korrupten Backups führen würde. Dies wollen wir dann jeden Tag automatisch umsetzen.
Dies ist eine sehr einfache Art des Backups, welche bei 99% der Anleitungen hier funktioniert und bei der es notwendig ist, dass die Dienste eine kurze Zeit offline sein müssen. Sie ist damit ganz klar an Privatanwender gerichtet. Mir ist bewusst, dass es sehr viele Wege gibt es eleganter zu lösen, aber die eleganteren Lösungen erfordern mehr Wissen / Infrastruktur und müssen auf die einzelnen Dienste angepasst werden.
2. Umgebung
Wir gehen davon aus, dass wir eine WordPress Webseite sichern wollen. Dies könnte aber auch jeder andere Dienst sein. Bei 99% der Anleitungen hier sollte dieser Weg funktionieren. Die nachfolgenden Parameter müsst ihr natürlich bei euch entsprechend anpassen.
Dienst WordPress
Pfad: /opt/containers/wordpress
Backuppfad
/mnt/backup/wordpressCode-Sprache: JavaScript (javascript)
Bei diesem Inhalt handelt es sich um exklusiven Content für Community Plus Mitglieder und Supporter.
Bitte logge dich mit deinem Account ein um den Inhalt zu sehen.
11. Zusammenfassung
Datenverlust ist oft nur eine Frage der Zeit – aber mit der richtigen Vorbereitung kein Grund zur Panik. Mit diesem Skript hast du eine solide Basis geschaffen:
- Konsistent: Durch das kurze Stoppen der Dienste sind deine Datenbanken nicht korrupt.
- Automatisiert: Dank Cronjob musst du nicht mehr manuell daran denken.
- Sicher: Verschlüsselung schützt vor neugierigen Augen, und die 3-2-1-Regel (wenn du den externen Speicher nutzt) schützt vor Hardware-Ausfällen.
- Überwacht: Die Integration Healthchecks.io gibt dir das gute Gefühl, dass alles läuft.
- Universal: Diese Anleitung lässt sich grundsätzlich für fast alle Dienste nutzen
Du kannst dieses Skript nun für jeden deiner Docker-Dienste kopieren und anpassen.
Wie zu Beginn bereits erwähnt, bildet dieses Skript nur einen Grundlage und mit deinem jetzigen Wissen kannst du das Skript bzw. deine Backup Strategie nun noch weiter verbessern.
Denk daran: Das beste Backup ist nutzlos, wenn man den Restore nicht geübt hat. Nimm dir also am besten direkt heute Abend 10 Minuten Zeit und probiere aus, dein WordPress oder deinen Dienst aus deinem Backup wiederherzustellen.

Hallo
Christian , super Anleitung, vielen Dank. Folgende Frage zu Nextcloud. Ich nutze deine damalige Backupanleitung für NC, da setzt Du den Wartungsmodus vorm “down” Befehl. Ist das noch nötig? Gruß Andreas