Automatisierte Datensicherung mit rsync – Ein vollständiger Guide
Einführung
Sicherungen sind ein essenzieller Bestandteil jeder IT-Infrastruktur. Ob persönliche Daten oder Unternehmensinformationen, sie vor Verlust zu schützen, sollte oberste Priorität haben. In diesem Artikel zeigen ich dir, wie du mithilfe von rsync
automatisiert Verzeichnisse zwischen zwei Linux-Servern synchronisierst und gelöschte Dateien in einem separaten Ordner sicherst. Das Ganze wird in einem Bash-Skript umgesetzt. Boah, was’n Business-Bla, Also nochmal normal 😉
Backup ist eines dieser Themen, das oft unterschätzt wird – bis es zu spät ist. Ich wollte sicherstellen, dass meine Daten sicher sind und nicht einfach verloren gehen, falls etwas schief läuft.
In diesem Artikel zeige ich euch, wie ich mithilfe von rsync
meinen Ordner /daten
von einem Server auf einen anderen kopiere. Dabei sorge ich dafür, dass gelöschte Dateien nicht komplett verschwinden, sondern in ein eigenes Verzeichnis verschoben werden.
Warum rsync
?
Ich habe mich für rsync
entschieden, weil es schnell, effizient und einfach zu konfigurieren ist. Es kopiert nur geänderte oder neue Dateien und spart damit Zeit und Bandbreite. Außerdem ist es perfekt, um zwei Server über SSH zu synchronisieren.
Mein Backup-Szenario
Ich wollte einen bestimmten Ordner – in meinem Fall /daten
– von meinem Hauptserver auf einen Backup-Server kopieren. Dabei sollten alle Unterordner und Dateien rekursiv synchronisiert werden. Falls ich auf dem Hauptserver Dateien lösche, wollte ich nicht, dass diese einfach auf dem Backup-Server verschwinden. Stattdessen sollten sie in einen Ordner namens „gelöschte-Dateien“ verschoben werden.
Voraussetzungen
- Zwei Linux-Server mit SSH-Zugriff.
- SSH-Schlüssel-basierte Authentifizierung eingerichtet, um ein Passwort-freies Login zu ermöglichen.
rsync
ist auf beiden Servern installiert.
Das Bash-Skript
Hier ist das Bash-Skript, das du verwenden kannst:
#!/bin/bash
# Variablen
SRC_SERVER="user@src_server:/daten/" # Quelle (Erster Server)
DEST_SERVER="user@dest_server:/backup/daten/" # Ziel (Zweiter Server)
DELETED_DIR="user@dest_server:/backup/geloeschte-Dateien/" # Verzeichnis für gelöschte Dateien
# Rsync Optionen
# -a : Archive-Modus (rekursiv, erhalte Berechtigungen, etc.)
# -v : Verbose, zeigt detaillierte Ausgabe
# -u : Kopiert nur, wenn Quelle neuer ist als Ziel
# --delete : Löscht Dateien auf Ziel, die auf der Quelle entfernt wurden
# --backup : Sichere gelöschte/überschriebene Dateien
# --backup-dir : Pfad zum Backup-Verzeichnis (für gelöschte Dateien)
rsync -av --delete --backup --backup-dir="$DELETED_DIR" "$SRC_SERVER" "$DEST_SERVER"
# Exit-Status prüfen
if [ $? -eq 0 ]; then
echo "Backup erfolgreich abgeschlossen."
else
echo "Fehler beim Backup."
fi
Erklärung der Optionen
-a
(Archive-Modus): Dieser Modus kopiert Dateien rekursiv und erhält dabei Berechtigungen, Zeitstempel und symbolische Links.-v
(Verbose): Gibt detaillierte Informationen über den Kopiervorgang aus.-u
(Update): Verhindert das Kopieren von Dateien, die bereits auf dem Zielserver existieren und aktueller sind.--delete
: Dateien, die auf dem Quellserver gelöscht wurden, werden auch auf dem Zielserver entfernt.--backup
und--backup-dir
: Sicherstellt, dass gelöschte oder überschriebene Dateien in ein spezielles Verzeichnis auf dem Zielserver verschoben werden.
Anpassungen
Bevor du dieses Skript verwendest, musst du einige Anpassungen vornehmen:
- Ersetze
user@src_server
unduser@dest_server
durch den jeweiligen Benutzernamen und die Hostnamen/IP-Adressen deiner Server. - Stelle sicher, dass auf dem Zielserver die Verzeichnisse
/backup/daten
und/backup/geloeschte-Dateien
existieren und beschreibbar sind. - Teste das Skript manuell, bevor du es automatisierst, um sicherzustellen, dass alles wie gewünscht funktioniert.
Automatisierung mit cron
Um das Skript regelmäßig auszuführen, kannst du einen cron
-Job einrichten:
bashCode kopierencrontab -e
Füge die folgende Zeile hinzu, um das Backup täglich um 2 Uhr morgens auszuführen:
bashCode kopieren0 2 * * * /pfad/zu/deinem/skript.sh
Fazit
Mit diesem einfachen rsync
-Bash-Skript kannst du deine Backups effizient und sicher automatisieren. Das Verschieben gelöschter Dateien in ein separates Verzeichnis sorgt zudem für zusätzliche Sicherheit. Wir hoffen, dieser Artikel hilft dir dabei, deine Backup-Prozesse zu optimieren!
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!