Kort antwoord: leg een hash van elk bestand vast als je de backup schrijft, en voer de controle later opnieuw uit op de backup.
Komen de hashes nog overeen, dan zijn de bytes er nog. Niets anders bewijst dat.
Er kunnen vier dingen misgaan, en geen ervan kondigt zichzelf aan:
Van buiten zien ze er alle vier hetzelfde uit: een map vol bestanden met geloofwaardige namen en datums.
Als je de backup schrijft, leg je vast wat je schreef:
find /Volumes/Backup/Documents -type f -exec shasum -a 256 {} + > ~/backup.sha256
Later vraag je of de backup nog overeenkomt met dat overzicht:
shasum -a 256 -c ~/backup.sha256
Elke regel komt terug als OK of FAILED. Een bestand dat helemaal is verdwenen, wordt als onleesbaar gemeld, en dat is wat je wilt: een ontbrekend bestand is een fout, geen gebrek aan bewijs.
Bewaar het hashbestand ergens anders dan op de backupschijf. Een overzicht naast het ding dat het beschrijft, gaat er samen mee ten onder.
Een aparte vraag, en die waar mensen op vastlopen. Het nieuwste bestand in de backup vertelt je wanneer de taak voor het laatst slaagde:
find /Volumes/Backup -type f -newermt '-7 days' | head
Geen uitvoer betekent dat er al een week niets is geschreven. Vertrouw je op Time Machine, vraag het dan rechtstreeks:
tmutil latestbackup
Hashes bewijzen dat de bytes het hebben overleefd. Ze bewijzen niet dat je een bestand terug kunt halen, want dat hangt ook af van de tool, de index, de versleutelingssleutel en of je nog weet hoe je ze alle drie gebruikt. Herstel een of twee keer per jaar een paar bestanden naar een kladmap en open ze.
Kies een bestand dat je echt zou missen, geen testdocument. Het doel van de oefening is ontdekken dat je herstelsleutel op een briefje in de Mac staat waarvan je de backup maakt, en dat te ontdekken op een rustige dinsdag.
Een automatische controle heeft drie eigenschappen die de handmatige versie niet heeft: hij draait of je eraan denkt of niet, hij controleert elk stuk, ook de stukken waar je niet aan dacht, en hij vertelt je het meteen als hij mislukt.
Copy Shelter leest de backup terug en controleert elk stuk met de hash waaronder het is opgeslagen, meldt een verwijderd stuk als ontbrekend en telt alleen kopieën die het echt heeft gecontroleerd. Het trekt ook aan de bel na 7 dagen zonder werkende backup, en dat vangt de vierde storing hierboven op, de veelvoorkomende.
shasum traag?Het leest elke byte, dus het duurt ongeveer even lang als de gegevens kopiëren. Daar gaat het om: een controle die de gegevens niet leest, kan geen schijf opsporen die ze niet teruggeeft.
Ja, en een willekeurige steekproef is veel beter dan niets. find ... | shuf -n 50 geeft je vijftig bestanden om te controleren, wat een kapotte schijf of een gestopte taak snel opspoort, al niet één enkel beschadigd bestand.
Opslagaanbieders controleren hun eigen kopieën met checksums, en dat beschermt je tegen hun kapotte schijven. Het beschermt je niet tegen een upload die nooit klaar was, een bestand dat al beschadigd was toen je het verstuurde, of een sync die stopte. De controle moet van jouw kant komen.
Overschrijf de backup niet. Maak eerst een tweede kopie van je Mac naar andere opslag en zoek dan uit welke van de twee niet klopt. Een mislukte controle op een backup die je meteen opnieuw draait, is een mislukte controle waarvan je net het bewijs hebt vernietigd.
Maandelijks is een redelijk ritme voor een volledige controle, wekelijks voor een steekproef, en een of twee keer per jaar voor echt terugzetten. Alles volgens schema is beter dan alles wat je moet onthouden.
Gerelateerd: de 3-2-1-backupregel, en wat mensen fout doen.