Op synchronisatiegebied kan er weinig tippen aan rsync, een tool die standaard aanwezig is in Linux, maar ook beschikbaar is voor Windows, zelfs met grafische interface in de vorm van DeltaCopy. Ook de openbron-synchronisatietool Synkron werkt op meerdere platformen en biedt in tegenstelling tot rsync een gebruiksvriendelijke grafische interface.
Rsync en rsync over ssh
Rsync komt uit de Unix-wereld en zit standaard in Linux. Het is een opdrachtregelgereedschapje vergelijkbaar met XCOPY.EXE in Windows, maar veel en veel beter. Rsync bestaat trouwens ook voor Windows en zelfs met een grafische schil genaamd DeltaCopy eromheen (zie verderop). Het is een prachtige oplossing voor het kopiëren van bestanden tussen twee locaties, ongeacht of die lokaal bestaan, zich op andere opslagvolumes bevinden, of via een netwerk of het internet bereikt moeten worden. De functionaliteit stopt daar niet. Rsync kopieert alleen de verschillen tussen bestanden en niet de volledige bestanden. Bovendien kan deze tool de datastroom comprimeren om snelheid te winnen over tragere netwerk- of internetverbindingen en om het bandbreedteverbruik te minimaliseren. Rsync ondersteunt verder het versleutelen van de datastroom via tunneling over ssh, al bestaan er ook mogelijkheden om te tunnelen over https (ssl). Beide protocollen gebruiken een sterke encryptie die dus een uitstekende beveiliging garandeert.
Rsync parameters
Er is een grote hoeveelheid opdrachtregelparameters voor Rsync, maar gelukkig hebben de ontwerpers de vaakst gebruikte combinaties in speciale verzamelparameters gestopt. We geven je een paar voorbeelden om te tonen hoe krachtig het is.
Back-up: rsync -vau bron doel
hierbij is -vau : verbose (toon wat je doet), archive (back-up alles) en update (bijwerken).
Moeilijker is het niet. Als de bron of het doel zich op een andere server bevindt (zelfs al zit die ergens op het internet) gaan we tunnelen over ssh en ook dat is erg eenvoudig:
rsync -vauz user@host:bron user@host:doel
Hierbij betekent de 'z' dat er compressie toegepast wordt. Het plakken van 'user@host:' vóór de bron of het doel wil zeggen dat die zich op een andere server 'host' bevindt en dat we daar toegang toe krijgen via ssh met de gebruiker 'user'. Rsync zal pauzeren om naar het wachtwoord van die gebruiker te vragen, tenzij je gebruik maakt van een paswoordloze inlog via certificaatauthenticatie.
Synchronisatie: rsync -vau –delete-after bron doel
Zoals je ziet is er bij rsync maar één parameter verschil tussen back-up en synchronisatie. De '–delete-after' zorgt ervoor dat na de back-upfase alle doelbestanden gewist worden die niet (meer) in de bron voorkomen. Ideaal om bijvoorbeeld de complete inhoud van een website te synchroniseren met een back-upserver.
Rsync prestaties
We meten de tijd nodig voor het synchroniseren van twee uitgebreide directorybomen zonder de feitelijke kopieeractie. Dit vertelt ons hoeveel bestanden per seconde het synchronisatieprogamma kan verwerken. Voor rsync onder Linux is dat 780 bestanden per seconde bij onze testboom.
Deelconclusie
Rsync kan nog heel wat meer, maar met deze erg eenvoudige instructies bereik je al back-up en synchronisatie zowel lokaal als op afstand. Wie dit niet kent, doet er goed aan het eens te bestuderen.
Productinfo
Producten: rsync
url: http://samba.anu.edu.au/rsync/; http://rsync.net/resources/howto/windows_rsync.html
Adviesprijs: gratis
Systeemvereisten: Linux, Unix, Mac, Windows
DeltaCopy
Bij Windows zijn we gewend aan een grafische interface voor alle programma's. Rsync en rsync over ssh zijn erg leuk in de Linux wereld en uiteraard bestaan ze (zie hoger) ook voor Windows. Maar dat is dan zonder of met een zeer beperkte grafische interface. Het was dus slecht een kwestie van tijd voordat iemand een behoorlijke grafische schil rond rsync zou bouwen. Dat is DeltaCopy geworden. Het roept echter rsync niet aan, rsync zit er gewoon in geïntegreerd.
Functionaliteit
Met DeltaCopy kun je alles wat je met rsync ook kunt. De grafische schil biedt natuurlijk niet de enorme veelheid van opdrachtregelparameters die rsync kent, maar alles wat je nodig hebt in een Windows-omgeving kun je probleemloos uitvoeren. DeltaCopy heeft zijn eigen scheduler aan boord voor gepland synchroniseren. Omdat rsync geen uitstel biedt tussen analyse en synchronisatie, biedt DeltaCopy dat ook niet. Een Windows-server heeft in tegenstelling tot een Linux-machine standaard geen ssh en rsync. Daarom wordt een DeltaCopy Server meegeleverd die je als een service in Windows kunt installeren. Dan hoef je alleen de directory's op die server op te geven die je wenst te synchroniseren en kun je vanuit de DeltaCopy-client daarnaar verwijzen. Per profiel kun je desgewenst een andere ssh-authenticatie opgeven.
De naam DeltaCopy is niet verkeerd gekozen. Vermits rsync deltakopiëren ondersteunt (het kopiëren van alleen de gewijzigde blokken in een bestand en niet het hele bestand), ondersteunt DeltaCopy dat dus ook. Dat kan aardig wat tijd besparen, zeker als er veel grote bestanden in de directorybomen aanwezig zijn.
Bediening
Je definieert synchronisatieprofielen die door DeltaCopy uiterst links van het dialoogscherm in een boomstructuur voorgesteld worden. Een keuze van een profiel toont rechts een tabblad met bestandenlijst, opties en authenticatie. Aan een profiel kun je onderaan een uitvoeringsschema koppelen. Dat uitvoeringsschema is overigens gewoon het Windows takenbeheer.
Prestatie
DeltaCopy presteert vrijwel net zo snel als rsync onder Windows, maar het is wel iets trager dan rsync onder Linux. Wij maten een werksnelheid van bijna 762 bestanden per seconde voor onze testboom.
Productinfo
Product: DeltaCopy 1.4
url: http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp
Adviesprijs: gratis
Systeemvereisten: Windows XP
Synkron
Sourceforge is een uitgebreide verzameling open source programma's en daarin treffen we Synkron aan. Dat is uiteraard gratis en biedt bestanden- en mappensynchronisatie met behulp van een gebruiksvriendelijke grafische interface. De source kun je compileren voor zowat eender welk platform, maar van de site zijn alleen uitvoerbare bestanden downloadbaar voor Windows en Mac. Voor Linux en andere Unix-achtigen veronderstelt de site dat je de broncode zelf compileert.
Functionaliteit
Synkron kan meerdere mappen tegelijk synchroniseren, biedt een analysefase voor het eigenlijk synchroniseren, kan overschreven of gewiste bestanden herstellen, gepland werken, filters en zwarte lijsten toepassen: kortom alles wat je maar zou kunnen wensen. Ofschoon Synkron eerst voor Linux ontwikkeld werd en wordt, vinden we het raar dat het niet kan samenwerken met rsync. FTP kent het ook al niet.
Bediening
Een synchronisatieprofiel is bij Synkron een tabblad. Je kunt meerdere tabbladen definiëren met elk hun eigen synchronisatieprofiel en die kunnen desgewenst tegelijk uitgevoerd worden. Bovenaan vind je de belangrijkste bedieningsfuncties terug als knoppen. 'Synchroniseren' is duidelijk, maar 'MultiSync' is wat je moet aanklikken om de gedefinieerde tabbladen (profielen) tegelijk te doen uitvoeren. Het is mogelijk een analyse te laten uitvoeren zodat je kunt zien wat er zou moeten gebeuren om tot een synchronisatie te komen zonder dat de replicatie ook effectief uitgevoerd wordt. Als je het eens bent met het resultaat van de analyse, kun je op 'Sync' klikken om de replicatie te doen uitvoeren.
Prestatie
Onze testboom doorworstelde Synkron tegen een zeer behoorlijke 755 bestanden per seconde.
Deelconclusie
Zoals bij veel gratis en open source software staan we echt te kijken van de geboden functionaliteit en goed uitgewerkte bediening van Synkron. Wel hadden we graag gezien dat ook rsync en ftp ondersteund worden.
Productinfo
Product: Synkron 1.6
url: http://synkron.sourceforge.net/
Adviesprijs: gratis
Systeemvereisten: Linux, Unix, Mac of Windows
De serie
Volgende deel: Windows-synchronisatiesoftware
1: Bestanden repliceren en directory's synchroniseren
2: Openbron synchronisatiesoftware
3: Windows-synchronisatiesoftware
Wat bij ons een groot probleem is betreft heel veel bestanden ( > 1Miljoen) die relatief klein zijn (1k).
Het vergelijken van de datum van de bestanden om te kijken of ze opnieuw gekopieerd moet worden kan lang (uren) duren onder linux.
Weet iemand hiervoor nog een oplossing?
Klinkt als iets dat op Perl script niveau opgelost zou moeten kunnen worden.
Windows?