
Filsynkronisering, begge veje
Ofte har jeg behov for at have data synkroniseret mellem flere computere. Jeg vil for eksemple gerne kunne have mit system af todo-lister både på de bærbare og på min arbejdsmaskine. Men tit handler det bare om at kunne dumpe filer jeg ved jeg skal have flyttet over næste gang jeg kommer on-line et sted.
Det sædvanlige værktøj til den slags er rsync, men det har den ulempe at den kun kan synkronisere én vej. Vil man synkronisere begge veje skal man selv hacke noget sammen oven på rsync. En anden løsninig kunne være at (mis)bruge et versionsstyringssystem, men jeg har ikke behov for versionering og for det meste er det bare en enkelt gang, så det er lidt at skyde gråspurve med kanoner.
For et stykke tid siden fandt jeg værktøjet jeg har savnet gennem lang tid: unison. Det bygger på rsync-algoritmenn, men laver lige det ekstre bogholderi der skal til, for at kunne synkronisere begge veje. Når man kalder unison på to kataloger vil den se hvilke filer der findes i A men ikke B og omvendt og spørge hvilke der skal kopieres over. Næste gang man kalder unison vil den kun spørge om nye og ændrede filer og kopiere dem. Hvis en fil er blevet ændret i både A og B kan man vælge hvilkn en af filerne der sal bruges, men unison vil ikke forsøge at merge ændringer.
På de fleste af mine maskiner har jeg så et simplet script der foretager en synkronisering til min unison-katalog på min hjemmeserver. På den måde deler jeg filer rundt på alle de maskiner jeg bruger jævnligt.
Den noget primitive konflikthåndering kan selvfølgelig give nogle småproblemer, men ellers er unison et fedt værktøj.
Kommentarer (9)
Hey, har har lidt haft samme problemer, men da alle mine maskiner er mac, bruger jeg meget min .mac-idisk, hvis jeg arbejder på de samme filer i en periode.
Derudover bruger jeg Todoist.com som er en online todo-applikation. Det virker meget godt, og der er endda lavet et widget til det :)
Online-værktøjer er en god ting, men kræver netop at man er online. For mange af version2's læsere er det nok ikke noget problem, men jeg er lidt oldskool, så når jeg ikke lige er hjemme eller på arbejde er jeg kun så meget online som min Nokia3310 tillader mig.
Desuden er jeg ikke glad for webapplikationer. Den eneste type editor der er værre end Firefoxs TEXTAREA er når folk prøver at lave et eller andet rich text-fnidder i en TEXTAREA. (Længe leve https://addons.mozilla.org/en-US/firefox/addon/4125 men stadigvæk ...)
For det tredje kan jeg godt lide selv at have ejerskab over mine data. Jeg tilstår gerne at det til tider tager lidt overhånd, men som udgangspunkt giver det mig en rar fornemmelse i maven.
- Ja, jeg er en gammel bitter mand, der er svær at gøre tilpas.
det ser ud til at unison er "unmaintained", så at opbygge hele sin synkronisering på et dødt projekt, er måske ikke den mest fremsynede løsning...
jeg benytter selv /bin/sh + rsync til mine synkroniseringsformål. Rsync under cygwin gør at selv mine windowsmaskiner kan være med...
Seneste officielle version er fra 20. januar i år. Det kan jeg godt leve med. Men jeg forstår ikke helt versioneringen, men der er kommet 57 nummererede ikke-officielle versoner siden april sidste år.
http://tech.groups.yahoo.com/group/unison-announce/message/51
Jeg har brugt csync2 til at synkronisere mellem 2 servere. Det er lidt a'la rsync med ekstra funktionalitet, men ikke helt så god som jeg gerne ville have det.
Og jeg har brugt Unison til at synkronisere dokument direktorier mellem to maskiner. Det synes jeg fungerer godt.
Hvordan gør man normalt på en load balanceret server? 1 Master => xx Slaver?
Hvordan håndterer man filupload via websitet?
..ser det ud, men ikke om den vil køre hvis jeg forsøger at bruge prf-filer som beskrevet i http://alliance.seas.upenn.edu/~bcpierce/wiki/index.php?n=Main.UnisonFAQ...
Hvis jeg laver en default.prf fil og skriver unison default er det som om jeg slet har angivet nogle parametre - og så er det jo lidt svært at være smart...
Jeg tror ikke lige unison er velegnet til den slags (måske i et heartbeat/failover setup).
Jeg ville lægge data på et SAN eller i et database cluster. Så kan man skalere både i front og back, alt efter behov.
Det kommer an på budgettet. I et datacenter bruger man typisk SAN og et globalt filsystem hvis flere servere skal have adgang til samme indhold.
NFS kan gøre det, hvis få webservere skal læse samme filer.
Der er en del forskellige muligheder hvis man vil bygge cluster (ex. web-, mail- og db-server), ask google.
