Anleitung: rsync

Rsync ist das Schweizermesser der Datensynchronisation. Diese Anleitung gliedert sich in zwei Teile: Erstens die Verwendung von rsync und zweitens die Automatisierung von Backupläufen. Die verwendeten Kommandos müssen in einem Terminal ausgeführt werden, und rsync muss installiert sein.

Rsync

Prinzipiell baut sich rsync so auf: rsync [quelle] [ ziel]. Sowohl die Quelle als auch das Ziel können entweder lokale Verzeichnisse oder auch welche am remote Server sein. Im zweiten Fall greift rsync auf ssh durch, und der remote Server wird nach einem Passwort fragen.

Angenommen es gibt im aktuellen Verzeichnis ein Unterverzeichnis mit dem Namen ‚backupdir‘, und der Tera Alpin Username (Zugangsdaten) lautet ‚9999_beispiel‘:

user@terminal ~ $ rsync -v -a backupdir/ 9999_beispiel@data.tera-alpin.at:~/mein_backup/

Tipp: darauf achten, dass beide Pfade (Quelle und Ziel) mit einem ‚/‘ enden. Das letzte Unterverzeichnis (hier ‚mein_backup‘) wird automatisch erstellt, falls es noch nicht vorhanden ist.

-v steht für ‚verbose‘, zeigt an, welches File gerade transferiert wird und ist zum Testen praktisch
-a steht für ‚archive‘ und kombiniert einige nützliche Optionen, allen voran Rekursion

Eine weitere oft gewünschte Option ist –delete, das dafür sorgt, dass Files die im Quellverzeichnis gelöscht wurden, auch am Ziel gelöscht werden. Und natürlich ist man rsync ist auf jeden Fall einen Blick wert.

Automatische Backups

Rsync auf einen Tera Alpin Server verlangt nach einem Passwort. Um es nicht speichern zu müssen, können Client (ihr PC) und Server (Tera Alpin) auch ‚Schlüssel‘ austauschen.

Falls Sie bereits Schlüssel erzeugt haben, und diese verwenden wollen, können Sie den nächsten Schritt – das Erzeugen eines Schlüsselpaares – überspringen und Ihren öffentlichen Schlüssel auf dem Tera Alpin Server hinterlegen .

Erzeugen Sie ein Schlüsselpaar (public/private Keys) für ssh:

user@terminal ~ $ ssh-keygen -b 384 -t ecdsa -f ~/.ssh/tera-alpin-key

Die ‚passphrase‘ nach der Sie gefragt werden kann leer bleiben. Es gibt jetzt zwei neue Files im Verzeichnis .ssh: ‚tera-alpin.key‘ und ‚tera-alpin-key.pub‘. Den öffentlichen Schlüssel – ‚tera-alpin-key.pub‘ – kopieren Sie anschliessend auf den Online-Speicher. Verwenden Sie am besten ssh-copy-id:

user@terminal ~ $ ssh-copy-id -i .ssh/tera-alpin-key 9999_beispiel@data.tera-alpin.at

Achtung: Der private Schlüssel – tera-alpin.key‘ – bleibt bei Ihnen und sollte auf keinen Fall aus der Hand gegeben werden!

Um die Schlüssel jetzt mit rsync zu verwenden, ändert sich das rsync Kommando z.B. so:

user@terminal ~ $ rsync -a --delete -e 'ssh -i .ssh/tera-alpin-key' backupdir/ 9999_beispiel@data.tera-alpin.at:~/mein_backup/

Jetzt fehlt nur noch ein Cronjob, der das Kommando regelmäßig im Hintergrund ausführt:

user@terminal ~ $ crontab -e


Damit öffnet sich ein Editor. Wenn Sie z.B. möchten, dass das Backup jede Nacht um 1:00 startet, fügen Sie eine Zeile wie diese ein. (Achtung: bitte drauf achten, dass die Pfade zu rsync, ssh und dem key stimmen.)

0 1 * * * /usr/local/bin/rsync -a -e '/usr/bin/ssh -i /home/user/.ssh/tera-alpin-key' backupdir/ 9999_beispiel@data.tera-alpin.at:~/mein_backup/