Spring naar hoofdtekst

Backups met xsplit, maar dan veiliger

Geplaatst op door ,
Laatste aanpassing op .

Inleiding

In de tijd van schijnbaar eindeloze online opslagruimte en steeds grotere capaciteiten van harde schijven en SSD's, zou je de oude vertrouwde optische media zoals CD en DVD bijna vergeten. In dit geval wed ik echter liever op méér dan één paard bij het back-uppen van mijn dierbare data.

Natuurlijk hebben de plastic schijfjes een aantal nadelen ten opzichte van magnetische of flash-opslag. Ze verouderen sneller, hebben bepaalde eisen aan temperatuur en luchtvochtigheid - en kunnen lang niet zoveel data bevatten als bijvoorbeeld een USB-stick van 16 GByte. Bovendien duurt het beschrijven en uitlezen een veelvoud langer dan met andere media.

Ruimtegebrek

Lang geleden brandde ik al menige CD, later DVD vol met van alles en nogwat. Vaak liep ik dan tegen het probleem aan, dat de volledige data niet op één schijf paste. Dus ging ik handmatig aan de slag om, met kopieën van het volledige project, steeds weer een ander gedeelte te verwijderen in de compilatie. Totdat alle data in zo'n compilatie stond opgeslagen. Daarna kon het branden beginnen.

Toen ik GNU/Linux ging gebruiken en met de commandline vertrouwd raakte, ontdekte ik het Python-script xsplit van Rikishi 42. Het verdeelt alle bestanden in de bronmap zo efficiënt mogelijk, in porties van ongeveer 4,5 GByte groot; precies genoeg om één DVD te vullen.

Heel fanatiek

Omdat ik mijn verzameling data niet naar een aparte /in-map wilde kopiëren, legde ik een aantal symbolische links naar de mappen met mijn data aan. Daarna voerde ik het xsplit-script uit en waarempel: naast de /in-map verscheen een /out-map met daarin de mappen DVD_001, DVD_002 etc. Ik inspecteerde de inhoud en stelde vast dat de mappen inderdaad niet groter waren dan 4,5 GByte. Jammer genoeg was het indelen van mijn NFS-mappen niet gelukt en moest ik opnieuw beginnen.

Ik verwijderde de /out-map en controleerde in de /in-map of mijn originele bestanden nog gelinkt stonden… Nee dus. Stonden ze op de originele locatie, dan? Ook weg! Het script had alle bestanden verschoven en ik had ze zonder na te denken weggegooid.

Aanpassing

Opgelucht haalde ik een tweede backup tevoorschijn en plaatste de bestanden terug op mijn harde schijf. Zou er geen mogelijkheid zijn om Python symbolische links te laten gebruiken, in plaats van de originele bestanden te verplaatsen? De Python-documentatie schoot mij daarop zeer deskundig te hulp.

In regel 159 van het xsplit-script vond ik het volgende commando:

os.rename(FullName, DestName)

Met het commando symlink() was de aanpassing snel gemaakt:

os.symlink(FullName, DestName)

Maar wat was dat? De hele mappenstructuur werd netjes overgenomen in de /out-map, maar de daadwerkelijke bestanden toonden een broken link: een link waarvan het doelbestand niet kan worden gevonden. Een korte zoektocht in de documentatie bracht me bij de uiteindelijke oplossing:

os.symlink(os.path.realpath(FullName), DestName)

Conclusie

Hoewel het niet meer vaak voorkomt dat ik een verzameling bestanden over meerdere media moet verdelen, is dit script toch zeker de moeite waard. Ik moet nog steeds zelf in een brandprogramma als Brasero of K3B de daadwerkelijke compilaties maken; maar het puzzelen om de schijfjes zo goed mogelijk te vullen wordt mij dankbaar uit handen genomen. En met de symlink()-aanpassing kan het ook nog allemaal zonder dat het een megabyte extra aan opslagruimte kost.

Inhoudsopgave

Atom-feed Atom-feed van FWiePs weblog

Artikelen


Doorzoek de onderstaande categorieën om de lijst met artikelen te filteren.