Da CSync leider nicht meine Erwartungen erfüllt hat bzw. nicht im Ubuntu-Repository versorgt wird musste ich mich vor ein Weile nach Alternativen umschauen.
Dabei bin ich auf Unison gestoßen. Installiert man es auf Client und Server kann man via ssh sehr schnell große Datenmengen in beide Richtungen abgleichen. Man kann sogar eine Konfliktlösungsstrategie angeben, falls es sowohl auf Server als auch Clients zu Änderungen kam.
Mittels Exclude-List kann man gezielt steuern was übertragen werden soll. Sogar via Regex.
Beispielconfig:
root = /home/myuser root = ssh://myuser@myserver.local//path/to/storage batch = true ignore = Path .unison ignore = Path .kdevduchain ignore = Path .kde*/cache-* ignore = Path .kde*/socket-* ignore = Path .kde*/tmp-* ignore = Path .kde/share/apps/amarok/albumcovers ignore = Path .kde/share/apps/nepomuk ignore = Path .kde/share/apps/akregator/Archive ignore = Regex [^\.].* # alle Dateien die nicht mir . beginnen werden ignoriert.
Das ganze kann man ohne Probleme über ein Skript beim Start oder Login automatisieren:
/usr/bin/unison sync_homedir -silent -prefer newer -times
Bleibt nur noch das Problem wie man den ssh-Daemon auf der Server-Seite dazu bekommt ohne weitere Passwortabfrage eine Verbindung zuzulassen. Da gibt es verschiedene Varianten wie z.b. das Public-Key-Verfahren (wobei der keyring automatisch aufgemacht werden muss) oder GSSAPI. Letztere ist relativ bequem einzusetzen, wenn man mal einen Kerberos eingerichtet hat. Dann muss man einfach folgende Konfiguration im SSH Daemon vornehmen.
# Kerberos options KerberosAuthentication yes KerberosGetAFSToken yes KerberosOrLocalPasswd yes KerberosTicketCleanup yes # GSSAPI options GSSAPIAuthentication yes GSSAPICleanupCredentials yes
Anschließend akzeptiert der SSH Daemon nach einem Neustart auch Kerberos Tickets anstatt ein Password abzufragen.