Backups er viktig enten det er av familiebilder, dokumenter eller nettsider. Duplicity er et genialt verktøy for å ta inkrementell backup av filer på din Linux-server.
Noen VPS-leverandører tar backup av sine kunders servere med gjevne mellomrom. Dette kan være til stor hjelp den dagen serveren streiker. Men dessverre ikke alltid. Hva om backupen er over en måned gammel? En ny og oppdatert backup er et must, og det er du kun garantert å få dersom du sørger for backupen selv.
I denne guiden skal vi se nærmere på Duplicity, men det finnes mange andre alternativer. Noen bruker rsync, mens andre tar kopi av databaser og filer manuelt via f.eks. PhpMyAdmin eller FTP. Dette fungerer for noen, men hva om du kunne ta inkrementell backup, daglig, til bare noen få kroner i måneden? Det kan du, med Duplicity og Amazon S3, eller andre kompatible tjenester.
En Inkrementell backup betyr at man først tar en full backup av alle filene sine, og deretter kun lagrer endringene. Kombiner dette med komprimering av filene, så har du både en fullstendig og plassbesparende backup.
Amazons S3-tjeneste lar deg lagre store mengder data til en billig penge. Det er snakk om bare noen få cent per GB per måned. Kompatible alternativer som f.eks DreamHosts DreamObjects er enda billigere.
Duplicity støtter i tillegg til disse, flere andre lagringsmåter, kryptering og mye annet. For å gjøre det enklere å sette, finnes et lite program som fungerer som et lite lag oppå Duplicity, som heter Duply. Med Duply genererer du bare en konfigurasjonsfil, og så er du i gang. Du trenger ikke lære deg alt det Duplicity har å by på, hvis du ikke vil.
I denne guiden bruker vi Ubuntu, men dette bør også fungere i Debian. Bruker du andre Linux-distroer kan konfigurasjonen og pakkebehandleren være noe annerledes.
Installer først programmene vi trenger. Duplicity og Duply lager backupene, men vi trenger også Boto for å få S3-støtte:
sudo apt-get install duplicity duply python-boto
Når disse er installert, må du lage en backupkonfigurasjon. Dette gjør du med kommandoen:
duply minbackup create
Bytt ut minbackup med det du ønsker å kalle backupen. Det kan f.eks være navnet på serveren din. Denne kommandoen lager en mappe i hjemmemappen din (~/.duply
), hvor konfigurasjonen ligger.
Åpne så konfigurasjonsfilen i et redigeringsverktøy som f.eks vim eller nano (nano er lettest å bruke for nybegynnere):
cd /
nano .duply/minbackup/conf
Konfigurasjonsfilen inneholder en del forskjellig, men vi skal endre passord for kryptering og innlogging til S3/DreamObjects.
Finn linjen GPG_KEY='_KEY_ID_'
og sett inn en # foran for å deaktivere innstillingen. Vi skal bare bruke passordkryptering, og da trenger vi ikke en nøkkel. Det neste du gjør er å gå til neste linje for å velge et passord:
GPG_PW='veldigHemmelig'
Ta godt vare på dette passordet, da dette blir brukt til å kryptere backupfilene. Mister du dette, vil du ikke kunne gjenopprette backupene dine.
De endringene vår er TARGET, TARGET_USER og TARGET_PASS. Target angir adressen til backupen. Dette er s3:// som angir at vi skal bruke en S3-kompatible tjeneste, adressen (objects.dreamhost.com), og så din Bucket. En Bucket ganske enkelt en adskilt mappe eller lagringssted i S3. Dette oppretter du i kontrollpanelet.
Bruker du DreamObjects, er TARGET TARGET='s3://objects.dreamhost.com/minBucket'
. Amazon har flere ulike regioner i Europa, USA og Asia, så hvis du bruker deres tjeneste, kan du finne adressen du skal bruke, her.
TARGET_USER er det samme som Public key, og TARGET_PASS er det samme som Secret key eller Private key. Disse finner du også i kontrollpanelet hos DreamHost eller Amazon.
Når alt dette er gjort, har vi endret disse linjene i konfigurasjonsfilen. Trykk så Ctrl+X for å lagre og lukke filen, hvis du bruker nano:
GPG_PW='veldigSikkertPassord'
TARGET='s3://objects.dreamhost.com/minBucket'
TARGET_USER='mangebokstaver'
TARGET_PASS='EndaFlereBokstaverEnnBrukernavnet'
Hvis du kikket litt ekstra i konfigurasjonsfilen, vil du se at vi lot SOURCE stå som /. Dette betyr i utgangspunktet at hele filsystemet ditt vil bli sikkerhetskopiert. Det er ofte ikke ønskelig. Vi må derfor ekskludere og inkludere de mappene vi vil ha med i backupen.
For å velge hvilke filer du vil ha med i backupen, trenger du bare å endre exclude-filen:
nano .duply/minbackup/exclude
Linjer som starter med + vil bli inkludert, og linjer som starter med -, blir utelatt. Hvis du bare ønsker å ta backup av noen få mapper, kan det være lurt å utelate alt, og kun inkludere de få mappene du ønsker. Et eksempel kan se slik ut:
+ /home/dinBruker/nettsider
+ /etc/nginx
- **
Dette betyr at vi skal ta backup av /home/dinBruker/nettsider og /etc/nginx, og ekskludere alt annet.
Nå er alt konfiguert, og vi kan kjøre og laste opp den første backupen:
sudo duply minbackup backup
Dette kan ta litt tid, avhengig av hvor mye du skal laste opp. Ved neste backup vil det ta mye mindre tid, siden dette er en inkrementell backup, og bare endringer i filene siden forrige backup, blir tatt med.
Når opplastingen er ferdig, kan du gå inn i kontrollpanelet hos Amazon eller DreamHost, og se på filene i Bucketen din. Dette vil være mange pakkede filer på omtrent 25MB, hvis du ikke endret dette i Duply-konfigurasjonen. Disse er altså kryptert, og må gjenopprettes med passordet du valgte tidligere, ved å bruke Duplicity og Duply.
Det kan være lurt å ta vare på hele .duply
-mappen, for da kan du bare legge denne over på en ny server, og kjøre sudo duply main restore
for å gjenopprette fra siste backup. Du kan også gjenopprette enkeltmapper. Mer om det finner du på Duplys nettside, eller ved et enkelt Googlesøk.
For å gjøre hele denne prosessen automatisk, kan det være lurt å sette opp en cronjob. Da kan du f.eks. sette backupen til å kjøre daglig. Det er viktig at du setter opp conjoben som root hvis du skal ta backup av ting utenfor hjemmemappen der .duply
ligger.
sudo crontab -e
Og legg til noe sånt som:
0 4 * * * env HOME=/home/dinbruker duply dinbackup backup
Linjen over gjør at backupen kjører hver natt klokken 04:00. Pass på at env HOME=/home/dinbruker
peker til den mappen .duply
ligger i, slik at den finner konfigurasjonsfilene.
Backups er viktig, og om det koster noen kroner ekstra i måneden, er det en veldig liten pris å betale den dagen serveren din tar kvelden.
Denne guiden forutsetter at du har litt forkunskaper om Linux og det å bruke kommandolinjen over SSH. Spør i kommentarfeltet under, dersom du står fast!