Wer einen Laptop zusammen mit einem Desktop oder Fileserver besitzt, wird schnell das Problem bekommen dass alle Dokumente und Dateien über mehrere Computer verteilt liegen und man unterwegs mit dem Laptop nie die passenden dabei hat. Die bekannteste Lösung für das Problem ist natürlich ein Cloud-Storage wie Dropbox oder OwnCloud. Wenn die Datenmengen sehr groß sind und man keine eigene Installation von OwnCloud im Heimnetzwerk verwalten will, ist so eine Lösung allerdings nicht wirklich geeignet.
Csync ist ein leichtgewichtiges Terminalprogramm mit dem Dateien und Ordner über das Netzwerk synchronisiert werden können. Die Namensverwandtschaft mit dem bekannten Rsync ist dabei kein Zufall, da Csync sehr ähnlich funktioniert. Der große Unterschied zu Rsync ist jedoch, dass Csync zwei Ordner bidirektional synchronisiert, was bedeutet dass Änderungen in beiden Ordnern erkannt werden um diese auf einen gemeinsamen Stand zu bringen. Wer das Programm installieren möchte findet hier eine Anleitung um Csync aus den Sourcen zu bauen, oder hier ein fertiges .DEB-Paket für 64-Bit Ubuntu/Mint.
Csync kann nach der Installation aus dem Terminal aufgerufen werden:
csync [SOURCE] [DESTINATION]
Source und Destionation können entweder lokale Ordner, oder Pfade auf Geräten im Netzwerk sein. Um auch entfernte Rechner zugreifen zu können muss ein SMB-Account mit Lese- und Schreibzugriff vorhanden sein.
csync ~/Music smb://matthias:passwort@MeinFileserver/Matthias/Music
Dieser Befehl würde alle Dateien in „Music“ mit dem Fileserver synchronisieren. Dabei ist es egal ob Dateien auf dem Fileserver oder zuerst auf dem Laptop hinzugefügt oder gelöscht werden, da Csync anhand des Änderungsdatums und der gespeicherten Zustandsdaten erkennt welche Änderung im Netzwerk synchronisiert werden muss.
Wenn man möchte dass die Synchronisierung regelmäßig durchgeführt wird, kann man zum Beispiel CRON verwenden um den Befehl in gewissen Zeitabständen zu wiederholen lassen. Dieser Eintrag im Crontab würde Csync einmal pro Stunde aufrufen:
0 * * * * csync /home/matthias/Music smb://matthias:passwort@MeinFileserver/Matthias/Music
Wenn man eine Dropbox-ähnliche Synchronisation wünscht, wäre `lsyncd` (http://code.google.com/p/lsyncd/) auch eine mögliche Lösung.
Danke für den Tip. Ich hätte noch ein Mittelding zwischen Cloudlösungen wie Dropbox und Direktsynchronisation wie Csync. Bittorrent Sync gleicht laufend Verzeichnisse über das Bittorrent Protokoll ab. Das hat den Vorteil, dass es problemlos auch mit grossen Dateien über das Internet funktioniert, dafür aber den Nachteil, dass es sich wieder um ein Closed Source Tool handelt und man nie 100% sicher sein kann, wer denn alles mithört.