Einfaches Online-Backup mit HiDrive, Mac OS und rsync

Ich suche schon seit längerer Zeit einen Online-Backup-Service auf dem ich meine Bilder und andere Daten vernünftig sichern kann. Die Auswahl ist ja nicht grade klein, aber jeder Dienst hat seine Einschränkungen.

Dropbox (2Gb gratis, bei Anmeldung über diesen Link +250MB für uns beide) verwende ich schon länger zum einfachen und schnellen syncen zwischen verschiedenen Geräten (Mac, iOS, Windows, Web). Klappt sehr gut, hatte aber ein paar Sicherheitsprobleme in letzter Zeit und ist für größere Backups relativ teuer. (50GB: 10$/Monat, 100GB: 20$/Monat, größere Pakete nicht verfügbar).

Als nächstes habe ich mir Wuala von LaCie angesehen, ein gutes Konzept und mit Verschlüsselung direkt auf dem Client recht sicher. Allerdings ist der Zugriff nur über einen Java Client und oder MacFuse möglich. Immerhin auch mit iOS Client. (50GB: 59€/Jahr, 100GB: 99€/Jahr, 250GB: 229€/Jahr)

Strato bietet ebenfalls schon länger das HiDrive an, aber langsam wird der Dienst erwachsen. Ziemlich flexible Zugriffsmöglichkeiten (SSH, WebDAV, SMB, rsync, FTP), allerdings (noch) keine guten Tools für die Apple Plattformen. iOS Client ist aber wohl für iPhone und iPad in der Mache. Auf Grund des Preises zunächst mein Online Speicher der Wahl für Backups. (20GB: 2€/Monat, 100GB: 5€/Monat, 500GB: 10€/Monat, größere Pakete sind ebenfalls verfügbar)

So und jetzt zum spannenden Teil:
Wie bastele ich mir eine gutes, einfaches HiDrive Backup mit Bordmitteln.

Ich habe mir dafür einen HiDrive Ordner unter Dokumente im Userordner angelegt in dem ich die zu sichernden Dateien reinkopiere. Alternativ einen symbolischen Link anlegen, damit die Dateien dort liegen bleiben können wo sie sind. Folgenden Befehl im Terminal verwenden
[blue_box]cd ~/Documents/HiDrive
ln -s "Dateiname"
[/blue_box]

Für den Sync auf das HiDrive verwende ich den rsync Zugang über SSH. In den HiDrive Einstellungen unter „Laufwerk einrichten“ gibt es unten einen Link („Tabelle mit allen Servernamen und URLs anzeigen.“) unter dem alle Zugangsmöglichkeiten hinterlegt sind.
[blue_box]rsync (SSH) rsync -rltDv -e ssh . box-xy@rsync.hidrive.strato.com:/users/box-xy/
[/blue_box]
rsync hat den Vorteil das es einige Optionen zur Optimierung gibt und so nur Dateien kopiert werden die geändert wurden, und sogar nur die Blöcke einer Datei die sich geändert haben.
Mehr zu rsync in den Apple Manpages
Wichtig: rsync arbeitet immer nur in eine Richtung, also von der Quelle auf das Ziel.

Wird der oben angegeben rsync Befehl aufgerufen werden alle Dateien aus dem aktuellen Ordner in den Ordner des Users box-xy kopiert. Bei jedem Aufruf muss das Passwort eingegeben werden, danach werden die geänderten Files kopiert.

Wenn rsync automatisch aufgerufen werden soll müssen wir die Passwortabfrage loswerden. Dafür gibt es bei SSH die Möglichkeit sich mit einem Zertifikat statt eines Passworts anzumelden.
Das Zertifikat muss zunächst auf dem lokalen Rechner erzeugt werden. Bei der Passwort abfrage einfach Return drücken.
[blue_box]ssh-keygen -t dsa -b 1024 -f ~Documents/keys/rsync-key_demo
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in rsync-key_demo.
Your public key has been saved in rsync-key_demo.pub.
[/blue_box]
Der Public Key (mit der Endung .pub) muss jetzt beim HiDrive hinterlegt werden. Unter Einstellungen-Kontoverwaltung den User auswählen und unter „OpenSSH-Schlüssel“ den Public Key hochladen. Wichtig: diese Schlüssel nur für diesen Zweck verwenden um sich kein zusätzliches Sicherheitsloch zu bauen.
Der folgende Aufruf fragt jetzt nicht mehr nach dem Passwort sondern nutzt den hinter „-i“ angegebenen Key.
[blue_box]rsync -aLvze "ssh -i '$HOME/Documents/keys/rsync-key_demo'" ~/Documents/HiDrive/ box-xy@rsync.hidrive.strato.com:/users/box-xy[/blue_box]

Das Ganze jetzt noch in einen schöne Automator Ablauf und schon hat man ein One-Click-Backup.
Automator öffnen, neue Aktion hinzufügen „Shell-Skript ausführen“ und den rsync Befehl einsetzen. Ich habe noch eine Growl Notification eingesetzt um eine Meldung zu bekommen wieviele Dateien kopiert wurden (setzt growlnotify voraus), außerdem noch einen Ton wenn das Backup durch ist (afplay).

[blue_box]rsync -aLvze "ssh -i '$HOME/Documents/keys/rsync-key'" ~/Documents/HiDrive/ box-xy@rsync.hidrive.strato.com:/users/box-xy/Sync --stats
grep "Number of files transferred:" | /usr/local/bin/growlnotify --title "HiDrive Backup"
afplay /System/Library/Sounds/Glass.aiff
[/blue_box]

Die rsync Optionen könnt ihr nach euren wünschen ausprobieren. (rsync -h hilft beim erkunden).
Das ganz als Anwendung speichern und Doppelklicken.

HiDrive Sync Automator