Backups

Als je een tijdje met je stamboom bezig bent geweest heb je al snel een aardige hoeveelheid gegevens. Namen, geboortedatums, geboorteplaatsen, beroepen en nog veel meer van familieleden waarvan je niet eens wist dat ze bestonden. Vroeger werden die gegevens verzameld in kaartenbakken en via registers kon je die raadplegen.

Deze handmatige werkwijze is erg tijdrovend, daarom gebruiken we vrijwel allemaal een computerprogramma. Foto’s, geboortekaartjes, diploma’s of krantenberichten scannen we in. En nu loopt niet de kaartenbak, maar onze harddisk langzaam vol. Dit artikel gaat niet over de hoeveelheid gegevens, want een standaard harddisk in een PC is tegenwoordig groot genoeg.

Nee, we gaat het hier hebben over iets wat vaak vergeten wordt, het maken van een reservekopie. Omdat we het zo vaak vergeten, is er zelfs een dag in het jaar tot World Backup Day (op die site staan diverse tips!) uitgeroepen: 31 maart. Voor het maken van een backup zijn er diverse mogelijkheden, maar ze zijn niet allemaal goed uitgewerkt als je erop gaat zoeken op het internet.

Het backup programma rsync zit standaard in Linux en wordt voornamelijk professioneel door technici (system administrators) gebruikt. Een belangrijke reden voor het gebruik ervan is dat rsync controleert of de gekopieerde gegevens goed zijn aangekomen, zelfs bij een tijdelijke onderbreking in het netwerk.

De afkorting staat voor remote synchronization, je kunt er bestanden vanuit je pc naar een andere pc of aangesloten harddisk mee kopiëren. Het is al ontwikkeld in 1996 en het wordt nog steeds bijgewerkt. Doorgaans wordt het via een terminal gebruikt maar er is ook een GUI-versie:

Maar het is niet op Microsoft Windows te vinden, als je dat toch wil zou je het kunnen installeren in het Windows Subsystem for Linux. Als je dat hebt geïnstalleerd, kan je het gebruiken via bijvoorbeeld deze handleiding.

rsync gebruiken

Een eenvoudig voorbeeld met rsync in een Linux terminal. Stel, we hebben twee mappen op de schijf aangemaakt: a en b. In a zit een bestandje en b is leeg. Met het volgende commando zorgen we ervoor dat b gelijk wordt aan a:

$ rsync -a a/ b/

De opties achter rsync betekenen:

-a              archive, maak een kopie.
a/ b/           a en b zijn de directories gescheiden met een spatie, de / zorgt ervoor dat de inhoud wordt gekopieerd en niet de directories zelf.

Let op: elk bestand in b dat al bestaat in a wordt overschreven!!

Dit werkt, maar rsync geeft met deze opties geen informatie. Als er veel bestanden zijn, is het volgende commando beter:

$ rsync -a --progress a/ b/

Als er al een keer een backup is gedraaid, bevat b al bestanden. Om te zorgen dat die niet overschreven worden, gebruik je:

$ rsync -a --progress --ignore-existing a/ b/

Als we alleen bestanden uit a willen updaten die nieuwer zijn dan b, gebruik je de –update optie:

$ rsync -a --update --progress a/ b/

Dat werkt niet met de –ignore-existing optie want die ontdekt dat het bestand al bestaat en laat niet toe dat het wordt overschreven wegens de –update optie. We kunnen nog wat opties toevoegen:

$ rsync -avhWz --update --progress a/ b/
- a           archive, maak een kopie
- v           verbose, geef uitgebreid aan wat er gebeurt
- h           human-readable, geef weer in leesbare tekst
- W           whole-file, kopieer gehele bestanden
- z           comprimeer de bestanden tijdens het versturen.
--progress    laat de voortgang zien tijdens het proces

Testen

Het gebruik van rsync valt of staat met de juiste keuze van de opties. Kies je verkeerd, dan loop je de kans dat gegevens lokaal of remote verloren gaan. Het is daarom erg belangrijk dat een rsync-commando eerst goed getest wordt op een aantal test-bestanden. En dan pas op belangrijke gegevens wordt toegepast. Let ook op dat er verschil is tussen kleine of hoofdletters in de opties van rsync, dit is een typisch verschil met MS Windows.