Backup mit rsync via SSH
Um einen entfernten Linux Server zu sichern bietet sich das Programm "rsync" an. Da "rsync" in der Lage ist, beim Sichern nur die geänderten Daten zu übertragen, wird somit die Bandbreite geschont.
Im Hinblick auf die Sicherheit macht es Sinn die Übertragung mittels SSH-Tunnel zu verschlüsseln.
Da Backup`s in der Regel automatisiert werden, bietet SSH die Möglichkeit, sich via "Key" (ohne Passwort) zu authentifizieren. Den Rest erleridgt der Cron-Daemon.
Voraussetzungen
Auf beiden Systemen muss der SSH-Daemon sowie das Programm "rsync" installiert sein. Zusätzlich muss auf beiden Systemen der gleiche Benutzer existieren.
# adduser backup
Durchführung
Für die Durchführung nehmen wir an:
- "src" ist der Server, auf dem wir das Backup ablegen wollen
- "dst" ist der Server, von dem wir das Backup erstellen wollen
Anlegen eines passwort-freien Schlüsselpaares.
src # ssh-keygen -t rsa -f backup-dst.debian-network.org.identity
Bei Nachfrage 2x mit "Enter" bestätigen, da wir ja einen passwort-freien Schlüel erstellen wollen.
Jetzt sollten wir mit "ls -l" folgende Dateien sehen:
backup-dst.debian-network.org.identity (Private-Key, Geheim)
backup-dst.debian-network.org.identity.pub (Public-Key)
Den Public-Key aus den "dst"-Server via SSH übertragen.
Public Key von "src" auf "dst" autorisiren:
Den passwort-freien Login testen:
Rsync-Test:
-avz --delete /home/backup/quelle src:/home/backup/ziel/
Cron-Job: (jede Nacht um 01:05)
5 1 * * * rsync -e 'ssh -i /home/backup/.ssh/backup-dst.debian-network.org.identity dst.debian-network.org' -avz --delete \
/home/backup/quelle src:/home/backup/ziel/