Ein Skript, das automatische Backups einer MariaDB/MySQL-Datenbank ermöglicht.
For English, please refer to the Wiki.
MariaDBAutobackup ist ein Shell-Skript, das entwickelt wurde, um regelmäßige Backups einer MariaDB/MySQL-Datenbank zu automatisieren. Es erleichtert die Sicherung und Wiederherstellung von Datenbanken, um den Verlust wichtiger Daten zu verhindern. Es bietet erweiterte Funktionen wie Verschlüsselung, Bereinigung alter Backups, verschiedene Backup-Typen und Remote-Backup-Optionen.
- Installation
- Konfiguration
- Verwendung
- Backup-Typen
- Remote Backup-Optionen
- Automatisierung
- Erweiterte Funktionen
- Beitragende
- Lizenz
-
Klone dieses Repository auf deinen lokalen Rechner:
git clone https://github.com/mleem97/MariaDBAutobackup.git
-
Navigiere in das Verzeichnis des geklonten Repositories:
cd MariaDBAutobackup -
Stelle sicher, dass das Skript ausführbar ist:
chmod +x mdbackup.sh
-
Führe das Skript mit dem folgenden Befehl aus:
sudo ./mdbackup.sh install
-
Öffne die Konfigurationsdatei
/etc/mdbackup.conf(falls vorhanden) oder erstelle sie. -
Passe die Konfigurationsvariablen an deine Umgebung an. Beispielsweise:
# Datenbank-Einstellungen DATABASE_HOST="localhost" DATABASE_USER="root" DATABASE_PASSWORD="" # Backup-Einstellungen BACKUP_DIR="/var/lib/mysql-backups" LOG_FILE="/var/log/mdbackup.log" BACKUP_RETENTION_DAYS="7" # Komprimierungs-Einstellungen COMPRESSION_ALGORITHM="gzip" COMPRESSION_LEVEL="6" # Verschlüsselungs-Einstellungen ENCRYPT_BACKUPS="no" GPG_KEY_ID="" # Zeitplan-Einstellungen BACKUP_TIME="02:00" # Remote Backup-Einstellungen REMOTE_BACKUP_ENABLED="no" # NFS-Einstellungen REMOTE_NFS_MOUNT="" # RSYNC-Einstellungen REMOTE_RSYNC_TARGET="" # Cloud-Einstellungen REMOTE_CLOUD_CLI="" REMOTE_CLOUD_BUCKET="" # SSH Tunnel-Einstellungen (für Remote-Datenbanken) SSH_USER="" SSH_HOST="" SSH_PORT="22"
Das Skript unterstützt die folgenden Befehle:
-
Backup erstellen:
mdbackup backup
Erstellt ein Backup der MariaDB/MySQL-Datenbank. Du kannst zwischen verschiedenen Backup-Typen wählen oder spezifische Tabellen sichern.
-
Backup wiederherstellen:
mdbackup restore
Stellt eine Datenbank aus einem vorhandenen Backup wieder her.
-
Konfiguration anzeigen/ändern:
mdbackup configure
Konfiguriert die Einstellungen des Skripts.
-
Komprimierungseinstellungen konfigurieren:
mdbackup configure-compression
Konfiguriert speziell die Komprimierungseinstellungen.
-
Service erstellen:
mdbackup create-service
Erstellt einen systemd-Service und Timer für automatische Backups.
-
Skript aktualisieren:
mdbackup update
Aktualisiert das Skript auf die neueste Version.
-
Version anzeigen:
mdbackup version
Zeigt die aktuelle Version des Skripts an (aktuell 1.2.0).
-
Updates überprüfen:
mdbackup check-updates
Überprüft, ob Updates für das Skript verfügbar sind.
-
Skript installieren:
mdbackup install
Installiert das Skript und richtet einen Service ein.
-
Skript deinstallieren:
mdbackup uninstall
Deinstalliert das Skript und entfernt den Service.
-
Backup-Integrität prüfen:
mdbackup verify
Überprüft die Integrität eines Backups anhand von Checksummen.
-
Hilfe anzeigen:
mdbackup helpZeigt die verfügbaren Befehle und deren Beschreibung an.
Das Skript unterstützt verschiedene Backup-Typen:
- Vollständiges Backup: Ein komplettes Backup aller Datenbanken.
- Differentielles Backup: Speichert nur die Änderungen seit dem letzten vollständigen Backup.
- Inkrementelles Backup: Speichert nur die Änderungen seit dem letzten Backup (egal welchen Typs).
- Tabellen-spezifisches Backup: Sichert nur ausgewählte Tabellen einer bestimmten Datenbank.
Das Skript unterstützt die Übertragung von Backups zu entfernten Speicherorten:
- NFS-Share: Backups können auf ein NFS-Share kopiert werden.
- RSYNC: Backups können mit rsync auf entfernte Server übertragen werden.
- Cloud-Speicher: Backups können mithilfe eines Cloud-CLI-Tools auf Cloud-Speicher hochgeladen werden (z.B. AWS S3, Google Cloud Storage).
Nach der Installation wird ein systemd-Timer eingerichtet, der das Backup täglich zur konfigurierten Zeit ausführt:
# Zeigt den Status des Timers an
sudo systemctl status mdbackup.timer- Abhängigkeitsprüfung und Installation: Das Skript überprüft und installiert automatisch erforderliche Abhängigkeiten.
- Verschlüsselung: Backups können optional mit GPG verschlüsselt werden.
- Bereinigung alter Backups: Backups, die älter als die konfigurierte Anzahl von Tagen sind, werden automatisch gelöscht.
- Testmodus: Führt Befehle im Testmodus aus, ohne Änderungen vorzunehmen.
- Pre- und Post-Backup-Hooks: Ermöglicht die Ausführung von benutzerdefinierten Skripten vor und nach dem Backup-Prozess.
- Fortschrittsanzeige: Visualisiert den Backup-Fortschritt bei längeren Prozessen.
- Automatische Updates: Überprüft regelmäßig auf Updates des Skripts.
- Konfigurationsprüfung: Validiert die Konfigurationsdatei vor dem Ausführen von Backups.
- Remote-Datenbankunterstützung: Verbindet sich mit Remote-Datenbanken, optional über SSH-Tunnel.
- Komprimierungsoptionen: Unterstützt verschiedene Algorithmen (gzip, bzip2, xz) mit einstellbaren Komprimierungsleveln.
- Integritätsprüfung: Erstellt und überprüft Checksummen für alle Backup-Dateien.
- Das Skript ist derzeit in Version 1.2.0.
- Bitte nutzt die "Issues" auf GitHub um Fehler zu melden oder Verbesserungsvorschläge einzureichen.
Dieses Projekt ist unter der GNU-GPL-Lizenz lizenziert. Siehe die LICENSE-Datei für Details.