Bestanden synchroniseren met Unison

Nu ik mijn laptop weer aan de praat heb gekregen en zowel m'n desktop PC als m'n laptop Linux draaien heb ik de manier waarop ik deze synchroniseer nog eens herbeken en aangepast. Toen mijn beide PC's windows draaiden maakte ik gebruik van Subversion, om de bestanden op de Desktop en Laptop te synchroniseren. Dit werkte vrijwel perfect om op beide PC's alle betanden te hebben en had als extra voordelen dat er een geschiedenis van wijzigingen werd bijgehouden (zo werkt SVN nu eenmaal) en, omdat de repository bij Dreamhost stond, dat ik ineens een off-site backup had. Er waren ook wel een paar nadelen aan verbonden. Om te synchroniseren moet je op beide PC's een svn commit doen en een svn update, soms meerdere keren als er op de beide pc's wijzigingen waren. Bovendien duurde het even omdat de wijzigingen moesten geuploaded worden naar Dreamhost en gebruikte ik het niet voor echt persoonlijke bestanden (bankafschriften etc) omdat de gegevens bij Dreamhost niet geëncrypteerd waren.

Nu gebruik ik twee aparte tooltjes voor enerzijds de synchronisatie tussen de twee pc's en anderzijds de off-site backup. Voor de backup gebruik ik Duplicity, waar ik niet verder op in ga. Voor de synchronisatie gebruik ik Unison. Unison werkt zowel onder Linux als onder Windows. Onder Ubuntu kan je het installeren (met GUI) door in de terminal sudo apt-get install unison-gtk uit te voeren.

Als je de GUI van Unison voor de eerste keer start wordt je gevraagd welke twee mappen je wil synchroniseren. Deze manier om Unison in te stellen is echter nogal weinig flexibel. Zelf bewerk ik altijd rechtstreeks de .prf bestanden van Unison. Deze zijn te vinden in /home/your-username/.unison/. Deze bestanden kan je in een text-editor zoals Gedit openen en bijmaken, op de pc vanwaaruit je de synchronisatie wil uitvoeren. In mijn geval start ik de synchronisatie altijd vanop de laptop dus het prf bestand staat op de laptop. Een voorbeeld van zo'n bestand ziet er als volgt uit:

# Unison preferences file
root = /media/cryptdata
root = ssh://192.168.1.112//media/DATA/
perms = 0

ignore = Path data
ignore = Path _ARCHIVE
ignore = Path music

ignore = Path lost+found
ignore = Path .Trash-*
ignore = Path dev/repos

Zoals je kan zien wordt de locatie /media/cryptdata (op de laptop) gesynchroniseerd met de locatie ssh://192.168.1.112//media/DATA/. Dit is een NTFS partitie die gemount is op /media/DATA op mijn desktop PC, die via OpenSSH bereikbaar is op ons lokale netwerk. Omdat de bestandsrechten op de NTFS partitie anders worden ingesteld dan op de laptop (Ext3) gebruik ik de optie perms = 0 zodat bestandspermissies worden genegeerd. Met de ignore-optie kan je bestanden en paden laten negeren, zoals je in mijn configuratie kan zien. Er zijn nog tal van andere opties die in de manual kan terugvinden.

Comments

There are no comments.

Comment Atom Feed