Backup-Anleitung · 4 min read · Dec 10, 2025
Rsnapshot einrichten, Archivierung von Snapshots und Backup von MySQL-Datenbanken auf Debian
Rsnapshot einrichten, Archivierung von Snapshots und Backup von MySQL-Datenbanken auf Debian
Von Nedim Hadzimahmutovic < [email protected] >
Dieses Howto zeigt Ihnen, wie Sie Rsnapshot installieren und einrichten, die Archivierung von Snapshots aktivieren und wie Sie MySQL-Datenbanken auf Debian sichern.
Installieren Sie das Programm mit dem apt-get-Dienstprogramm:
apt-get install rsnapshotBearbeiten Sie die Konfigurationsdatei:
nano /etc/rsnapshot.confSetzen Sie snapshot_root auf den Pfad, wo Sie die Backups aufbewahren möchten:
snapshot_root /var/cache/rsnapshot/Richten Sie die Liste der Verzeichnisse/Dateien ein, die gesichert werden sollen.
backup /etc/ localhost/Backup-Intervalle
Dieser Abschnitt der Konfigurationsdatei wird nur verwendet, um Bezeichnungen für Intervalle zu definieren und wie viele Snapshots jeder Ebene aufbewahrt werden sollen. Wie oft die Snapshots erstellt werden, wird über cron konfiguriert und ausgeführt. Das Schlüsselwort interval wird von einem alphanumerischen Label gefolgt, gefolgt von einer Zahl, die angibt, wie viele Intervalle (Snapshots) aufbewahrt werden sollen. Die Intervallbezeichnungen müssen eindeutig und in aufsteigender Reihenfolge sein, das kleinste Intervall muss zuerst aufgeführt werden.
Im folgenden Beispiel wird nach 6 “stündlichen” Snapshots der älteste “stündliche” gelöscht. Der oberste Eintrag (in diesem Fall “stündlich”) wird aus der Quelle kopiert, während die verbleibenden Einträge einfach auf den neuesten Snapshot aus einer Ebene darüber verlinken.
Mit anderen Worten, um sechs Backups pro Tag (vierstündliches Intervall), sieben tägliche Backups (eine Woche) und vier wöchentliche Backups (einen Monat) zu behalten, geben Sie an:
interval hourly 6
interval daily 7
interval weekly 4Die Intervallbezeichnungen “hourly”, “daily”, “weekly” können geändert werden, um Ihren Bedürfnissen zu entsprechen, zum Beispiel “daysago”, “weeksago” und “monthsago”.
Jedes Mal, wenn rsnapshot hourly manuell oder über cron ausgeführt wird, wird ein neuer Snapshot erstellt, die alten werden rotiert und die 6 aktuellsten (hourly.0 - hourly.5) werden beibehalten.
Backup-Punkte
Beispiel eines Backup-Punkts in der Konfigurationsdatei:
backup /etc/ localhost/ Backup-Punkte beginnen mit dem Wort backup, nach /etc/ folgt der vollständige Pfad des Verzeichnisses, das gesichert werden soll, und localhost ist ein Verzeichnis innerhalb von snapshot_root. Sie können localhost in etwas ändern, das mit dem Server assoziiert ist, wie den vollständig qualifizierten Domainnamen des Servers.
Zusätzlich zu vollständigen Pfaden im lokalen Dateisystem können Sie auch Remote-Systeme mit rsync über ssh sichern. Wenn Sie ssh installiert und aktiviert haben (über den Parameter cmd_ssh), können Sie einen Pfad wie folgt angeben:
backup [email protected]:/etc/ example.com/Bitte beachten Sie, dass Sie für den Root-Benutzer auf example.com die Schlüsselbasierte Anmeldung ohne Passphrasen aktiviert haben müssen, damit dies ordnungsgemäß funktioniert./
Backup-Skripte
Sie finden viele Beispiele im Verzeichnis utils, das sich auf Debian unter /usr/share/doc/rsnapshot/examples/utils/ befindet.
Backup-Skripte werden mit jedem niedrigsten Intervall ausgeführt.
Ausführen von Backups über Cron
Die Cron-Datei befindet sich unter
/etc/cron.d/rsnapshotDer Standardinhalt:
# 0 */4 * * * root /usr/bin/rsnapshot hourly
# 30 3 * * * root /usr/bin/rsnapshot daily
# 0 3 * * 1 root /usr/bin/rsnapshot weekly
# 30 2 1 * * root /usr/bin/rsnapshot monthly
Sie müssen die Zeilen auskommentieren, um die Backups zu aktivieren.
Die erste Zeile sagt cron, dass es cron-apt alle 4 Stunden ausführen soll, was den stündlichen Intervall-Einstellungen in der rsnapshot.conf entspricht.
Testkonfiguration:
Jedes Mal, wenn Sie eine Änderung in der Konfigurationsdatei vornehmen, führen Sie einen configtest durch:
rsnapshot configtestBITTE BEACHTEN SIE DIE FOLGENDEN REGELN:
- Die Konfigurationsdatei erfordert Tabs zwischen den Elementen, Leerzeichen stellen Argumente für Skripte dar.
- Verzeichnisse erfordern einen abschließenden Schrägstrich, Beispiel:
richtig: /home/
falsch: /home
Archivierung von Snapshots
cp /usr/share/doc/rsnapshot/examples/utils/rsnaptar /usr/local/bin/Stellen Sie sicher, dass Ihre Backup-Skripte dem Benutzer root gehören und von niemand anderem beschreibbar sind.
chown root.root /usr/local/bin/rsnaptar
chmod o-w /usr/local/bin/rsnaptarBearbeiten Sie das Skript und setzen Sie die Verzeichnispfade:
nano /usr/local/bin/rsnaptarSetzen Sie TAR_DIR auf den Pfad, wo der Snapshot archiviert wird, und SNAPSHOT_DIR auf den Ort, wo der tägliche Snapshot gespeichert ist:
TAR_DIR="/home/user/dvd_backup"
SNAPSHOT_DIR="/var/cache/rsnapshot/daily.0"Bitte beachten Sie, dass der stündliche Zyklus abgeschlossen sein muss, damit der tägliche Snapshot erstellt werden kann.
Dieses Skript unterstützt die GPG-Verschlüsselung von Dateien. Um dies zu deaktivieren, kommentieren Sie die folgende Zeile in /usr/local/bin/rsnaptar aus:
GPG="/usr/bin/gpg"Planung der Ausführung über Cron
nano /etc/cron.daily/rsnaptarFügen Sie hinzu:
#!/usr/bin/env bash
/usr/local/bin/rsnaptar [email protected]Hinweise:
- dieses Howto verwendet nicht die GPG-Option zur Verschlüsselung von Dateien. Wenn dies notwendig ist, kann ich das Howto aktualisieren, um die Dateiverschlüsselung für bessere Sicherheit einzuschließen,
- standardmäßig wird das Skript eigenständig ausgeführt, kann jedoch geändert werden, um als backup_script über rsnapshot selbst ausgeführt zu werden,
Rsnapshot: Backup von MySQL-Datenbanken
Installieren Sie mysql-client, falls nicht installiert, dies stellt das mysqldump-Dienstprogramm bereit:
# apt-get install mysql-client# cp /usr/share/doc/rsnapshot/examples/utils/backup_mysql.sh /usr/local/bin/Stellen Sie sicher, dass Ihre Backup-Skripte dem Benutzer root gehören und von niemand anderem beschreibbar sind.
chown root.root /usr/local/bin/backup_mysql.sh
chmod o-w /usr/local/bin/backup_mysql.shDieses Skript ist nur dafür ausgelegt, alle Datenbanken in eine einzige Datei zu sichern.
Bearbeiten Sie das Skript:
nano /usr/local/bin/backup_mysql.shErsetzen Sie
/usr/bin/mysqldump --all-databases > mysqldump_all_databases.sqldurch
/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf --all-databases > mysqldump_all_databases.sqlWenn Sie eine einzelne Datenbank dumpen müssen, verwenden Sie die folgende Zeile:
/usr/bin/mysqldump --defaults-file=/etc/mysql/debian.cnf DATABASE > DATABASE.SQLSkript zu Rsnapshot hinzufügen
Bearbeiten Sie die rsnapshot-Konfiguration:
nano /etc/rsnapshot.confUnter BACKUP POINTS / SCRIPTS fügen Sie Folgendes hinzu:
backup_script /usr/local/bin/backup_mysql.sh localhost/mysqldump/Testen Sie die Konfiguration:
rsnapshot configtestErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.