Varmuuskopioiden verifioiminen

Kun varmuuskopiointi on kerran saatu toimimaan, on vähän liiankin helppoa unohtaa koko asia. Kuten kaikilla asioilla, myös varmuuskopiolla on taipumusta mennä aikanaan rikki, esimerkiksi kun ohjelmistoja päivitetään, voikin käydä niin että varmuuskopiointia ei enää ajeta. Salasanat tuppaavat unohtumaan kun niitä ei tarvita eikä käytetä. Tai sitten vaan unohtuu tai ei ole tiedossa kuinka koko varmuuskopio tarvittaessa palautetaan. Tätä asiaa on syytä harjoitella, ja mielellään etukäteen eikä siinä vaiheessa, kun varmuuskopioita oikeasti tarvitsisi.

Ensinnäkin voidaan tarkastaa varmuuskopioiden tila. Tällä saadaan selville vähintäänkin se, onko varmuuskopioita otettu viime aikoina, eli ajetaanko koko skriptiä. Oletan tässä, että ympäristömuuttuja TARGET on asetettu. Se voi olla esimerkiksi jokin shell-tunnus rsyncillä yhteistettynä, rsync://tunnus@domain/backup.

duplicity collection-status $TARGET
Last full backup date: Sat Jan  4 21:11:39 2020
Collection Status
-----------------
Connecting with backend: BackendWrapper
Archive dir: /home/jukka/.cache/duplicity/dcfc04065d9a363af6686a4bc156631e

Found 0 secondary backup chains.

Found primary backup chain with matching signature chain:
-------------------------
Chain start time: Sat Jan  4 21:11:39 2020
Chain end time: Thu Jun  4 00:00:40 2020
Number of contained backup sets: 147
Total number of contained volumes: 354
 Type of backup set:                            Time:      Num volumes:
                Full         Sat Jan  4 21:11:39 2020               110
         Incremental         Sun Jan  5 13:00:10 2020                77
         Incremental         Mon Jan  6 15:00:09 2020                 1
         Incremental         Tue Jan  7 11:33:35 2020                14
         Incremental         Wed Jan  8 07:30:08 2020                 1
         <... rivejä poistettu... >
         Incremental         Mon Jun  1 00:01:26 2020                 5
         Incremental         Tue Jun  2 00:00:31 2020                 1
         Incremental         Wed Jun  3 00:03:53 2020                 1
         Incremental         Thu Jun  4 00:00:40 2020                 1
-------------------------
No orphaned or incomplete backup sets found.

Vähintäänkin tiedetään, että varmuuskopioskripti ajetaan edelleen päivittäin. Varmuuskopion sisältöä voidaan tutkia listaamalla sen tiedostot:

duplicity list-current-files $TARGET > backup_files.lst

Voimme verrata varmuuskopion sisältöä tietokoneen tiedostojen nykyiseen sisältöön. Saamme tulosteen, paljonko viimeisin varmuuskopio eroaa nykyisestä tietokoneen sisällöstä. Ei pitäisi erota paljoa.

duplicity verify -v8 --exclude-filelist=excludes.lst $TARGET $SOURCE

Lopulta, voimme yrittää palauttaa varmuuskopiosta jonkin tietyn osan. Esimerkinomaisesti, minulta löytyi listasta backup_files.lst seuraava rivi:

Thu May 28 12:11:12 2020 dev/latex/minted/minted-pandoc/minted.lua

Tämän palauttaminen onnistuu komennolla:

duplicity --file-to-restore dev/latex/minted/minted-pandoc/minted.lua $TARGET /tmp/minted.lue

Tämän jumpan jälkeen pitäisi olla tiedossa että varmuuskopiointi toimii kuten pitääkin!