Rsync für Backups nutzen

Ein gutes Backup sollte schnell angefertigt, zuverlässig rekonstruierbar und automatisierbar sein. zwar erfüllen bereits simple Vollkopien des Datenbestands auf andere Festplatten diese Anforderungen. Dennoch, sinnvoller und zeitgemässer sind Backups über das Netz, die zudem zu mehreren Zeitpunkten Snapshots speichern, was versehentlich gelöschte Dateien zu einem zweiten Leben verhilft. Dafür mehrere Vollkopien - egal ob auf Festplatten oder Bändern - anzufertigen, ist zu aufwändig. Es bieten sich inkrementelle Backups an. 

Als zuverlässiger Helfer hat sich dabei das Synchronisationstool rsync unter Linux herauskristalisiert. Mit rsync lassen sich Dateien und Verzeichnisse synchronisieren. Dabei prüft rsync, ob Dateien und Verzeichnisse identisch sind, und kopiert nur die Daten, die sich auch wirklich gegenüber der vorhergehenden Synchronisation geändert haben.

Wie eine verschlüsselte Datensynchronisation zwischen zwei Servern über das Internet eingerichtet wird, so der Gegenstand dieses HowTo's se

Systemvoraussetzungen

Benötigt werden auf dem Quellrechner wie auf dem Zielrechner unter Debian Linux die Programmpakete

  • rsync
  • ssh

Unter SuSe, Ubuntu, Redhat und Fedora sind die entsprechenden Pakete zu installieren. Bei Debian reicht ein

apt-get install rsync ssh

aus, um die notwendigen Pakete inklusive ihrer Abhängigkeiten zu installieren.

Konfiguration

Zunächst müssen Sie zu dem Quellserver eine Verbindung herstellen. Hier bietet sich ohne Zweifel ssh, die Secure Shell an. Hiermit bauen Sie eine verschlüsselte Verbindung zum Quellserver auf. Da ein Rootzugriff auch über ssh nicht wirklich zu favorisieren ist, werden wir an dieser Stelle eine Lösung für diese Problematik finden. Zunächst legen wir einen neuen Benutzer „Backup“ an und generieren für diesen einen neuen Public Key.

adduser -g root -d /home/backup -s /bin/bash -c Backup backup
passwd backup

Im Anschluß daran, generieren wir das ssh-Key-Paar

ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/home/backup/.ssh/id_rsa):
/home/backup/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/backup/.ssh/id_rsa.
Your public key has been saved in /home/backup/.ssh/id_rsa.pub.
The key fingerprint is:
af:70:d0:d0:7a:ca:b4:3f:48:42:11:cc:1d:66:a9:5a

Danach sollte man den soeben im Verzeichnis erstellten Public Key id_rsa.pub aus dem ~./ssh/ Verzeichnis per scp auf den Quellserver kopieren und der authorized_key Datei anhängen. 

backup@tux:~/ cd /home/backup/.ssh
backup@tux:~/.ssh$ cat id_rsa.pub | ssh backup@194.136.26.12 \
"cat >> .ssh/authorized_keys2"

Zunächst wird aber der Login des Backup-Users benötigt, damit beim ersten Mal die Datei kopiert werden kann.

The authenticity of host '194.136.26.12 (194.136.26.12)' can't be established.
RSA key fingerprint is d1:2e:07:ec:e4:59:d0:77:74:33:21:57:e5:13:22:d1.
Are you sure you want to continue connecting (yes/no)?

Sie werden sicher auch andere Dateien außer denen des Backup-Users sichern wollen. Dazu können Sie diese in ein Verzeichnis verschieben, worauf dieser User Zugriff hat oder Sie verwenden das sudo Kommando.