Back-up maken met Duplicity | Deel I

Een nieuwe server opgebouwd, uren besteed aan het inrichten en migreren van de gegevens, en dan is het de dag van de migratie. Alles gaat volgens plan, en binnen een paar uur is het afgerond. "Ik kan niet meer inloggen", "mijn gegevens doen het niet meer", "moet de server worden herstart?". Even door de bestanden bladen en jawel hoor, alles is encrypted door een cryptolocker.

Dit klinkt als een soort worst-case scenario, maar dit heb ik een keer meegemaakt tijdens een migratie.
Wat was het belangrijkste in dit verhaal? We hadden een back-up.

"Back-ups instellen komt nog wel"

Wat ik vaak hoor is "De back-up instellen, dat komt nog wel". Wat ik echter vaak zie is dat het wordt vergeten of dat het inregelen te laat komt. Persoonlijk eis ik van mijzelf dat ik de back-up instel vóór een systeem in productie gaat. Sterker nog, ik houd ervan als een back-up is ingeregeld tijdens het opbouwen van een systeem zodat ik ook tijdens het opbouwen terug kan naar een eerder punt.

Back-up maken met Duplicity

We gaan ons focussen op het maken van back-ups met Duplicity, en het automatiseren hiervan. Duplicity is een back-up tool die op bijna alle Unix systemen beschikbaar is. Met duplicity maak je makkelijk incrementele back-ups die je kunt versleutelen d.m.v. PGP (iets wat voor mij belangrijk is).

Allereest; wat is Duplicity? Van hun website:

Duplicity backs directories by producing encrypted tar-format volumes and uploading them to a remote or local file server. Because duplicity uses librsync, the incremental archives are space efficient and only record the parts of files that have changed since the last backup. Because duplicity uses GnuPG to encrypt and/or sign these archives, they will be safe from spying and/or modification by the server.

The duplicity package also includes the rdiffdir utility. Rdiffdir is an extension of librsync's rdiff to directories---it can be used to produce signatures and deltas of directories as well as regular files. These signatures and deltas are in GNU tar format.

Dus even een TL;DR: d.m.v. librsync en rdiffdir wordt er snel een back-up gemaakt die ook nog ge-encrypt kan worden.

Locaties waar back-ups naartoe kunnen worden geschreven:

acd_cli Amazon S3
Backblaze B2
Copy.com
DropBox
ftp
GIO
Google Docs
Google Drive
HSI
Hubic
IMAP
local filesystem
Mega.co
Microsoft Azure
Microsoft Onedrive
par2
Rackspace Cloudfiles
rsync
Skylabel
ssh/scp
SwiftStack
Tahoe-LAFS
WebDAV

Installatie van Duplicity

Tijd om aan het werk te gaan. Eerst installeren we Duplicity. Wij focussen op Ubuntu/Debian gebaseerde machines, maar het principe kan ook worden toegepast op andere Unix systemen.
sudo apt install duplicity -y. Dit commando lijkt mij vanzelfsprekend. Het is mogelijk om nu al een back-up te maken. We gaan dit doen met de volgende commando:

Note: we gaan een back-up maken naar een WebDav map. Deze is al aangekoppeld. Een artikel hoe dit gedaan kan worden komt later. Tevens voeren wij de commando's uit als de root gebruiker.

export PASSPHRASE=helemoeilijkestring  
duplicity /etc file:///mnt/backup/  
unset PASSPHRASE  

Nou, wat doen we hier:

  • export PASSPHRASE=helemoeilijkestring een sleutel instellen voor de encryptie
  • duplicity /etc file:///mnt/backup/ hier maken we de daadwerkelijke back-up van /etc naar de mount /mnt/backup
  • unset PASSPHRASE hier verwijderen we weer de encryptie sleutel uit het systeem

Simpel, toch? Als je het commando nu nog een keer intikt zul je merken dat het een stuk sneller gaat. Dit omdat hij alleen de wijzigingen back-upped sinds de laatste back-up.
BELANKRIJK: Bewaar de PASSPHRASE die je hebt gebruikt goed! Deze heb je iedere keer als je een back-up maakt nodig, en ook als je een restore moet doen.

Gefeliciteerd, je kunt nu back-ups maken! In deel 2 zullen we dit gaan automatiseren.