Salattujen inkrementiaalisien varmuuskopioiden tekeminen
Duplicity on näppärä komentorivityökalu backuppien tekemiseen. Duplicity soveltuu niin ulkoiselle kiintolevylle kun toiselle koneelle ssh:n yli backuppaukseen. Sillä onnistuu myös increkentiaalisien backuppien tekeminen ja palauttaminen helposti.
Asentaminen
OS X
OS X:ssä duplicity on hepointa asentaa homebrewin avulla.
brew install duplicity
Duplicity löytyy toki myös portsista.
port install duplicity
Linux
Linuxissa duplicity löytyy pakettienhallinnasta.
sudo apt-get install duplicity
Käyttöönotto
Salausavain
Duplicity käyttää tiedostojen salaukseen PGP-salausta. Tätä varten luodaan aluksi käytettävä PGP-avain gpg-komentorivityökalulla.
gpg gpg --gen-key
Vastaa kysymyksiin 1 (RSA ja RSA), 4096 (bittinen avain), 0 (ei ekspiroidu), y (on oikein). Realname kohtaan voit laittaa vaikkapa "Koneennimi duplicity". Email address kenttään voit laittaa mitä tahansa, esim. duplicity@koneennimi. Kommentin voi jättää tyhjäksi. Sitten vain O kysyttäessä varmistusta. Salasana kannattaa tehdä suosiolla esimerkiksi pwgen komentorivityökalulla tarpeeksi pitkäksi, esim 64 merkkinen. Ota salasana toki talteen.
Ota talteen generoinnin pääteeksi tulostetuista riveistä pub-alkuinen rivi. Alla esimerkki.
pub 4096R/12345678 YYYY-MM-DD
Apuscripti
Duplicityn käyttö perustuu komentoriviargumentteihin. Jotta käyttö olisi helppoa on järkevää tehdä apuscripti.
#!/bin/bash export PASSPHRASE="Aikaisemmin PGP-avaimelle luotu salasana tähän" # gpg public key for encryption KEY="12345678" SOURCE="${HOME}/" EXCLUDE_FILELIST="~/.exclude" SSH_PRIVKEY="~/.ssh/id_rsa" TARGET="scp://lakka.kapsi.fi/siilo/Duplicity" OPTS="--ssh-options=-oIdentityFile=$SSH_PRIVKEY --encrypt-key=$KEY --exclude-filelist=$EXCLUDE_FILELIST" OPTS="$OPTS --allow-source-mismatch --asynchronous-upload --full-if-older-than 2W" ulimit -n 1024 # full or inc if [ "$1" == "full" ] then TYPE="full" elif [ "$1" == "inc" ] then TYPE="inc" elif [ "$1" == "" ] then TYPE="inc" else echo "Invalid option $1" exit 1 fi echo running $TYPE backup duplicity $TYPE $OPTS "$SOURCE" "$TARGET" duplicity remove-older-than 2M $OPTS "$TARGET" --force
Muokkaa scriptistä tarvittaessa palvelimen osoite (lakka.kapsi.fi) sekä polku (/siilo/Duplicity) oikeaksi sekä KEY aikaisemmin luoduksi avaimeksi "pub" riviltä. Ohje myös olettaa että sinulla on luotuna ssh-avain ~/.ssh/id_rsa.
Muista muokata scriptin oikeudet siten etteivät muut pääse lukemaan sitä. chmod 700 polku/scriptiin/duplicity.sh on hyvä.
Serveripään valmistelu
Kirjaudu serverille ssh:lla ja luo kansio johon backupit menevät. Edellisen scriptin tapauksessa siismkdir -p ~/siilo/Duplicity chmod 700 ~/siilo/Duplicity
Muuta
Jos tahdot jättää joitain tiedostoja backuppautumasta, lisää ne tiedosto/kansio per rivi ~/.exclude tiedostoon.
Tahtoessasi voit myös säätää täysien backuppien tieyttä muuttamalla --full-if-older-than arvoa (2W).
Käyttö
Kaikki tarvittavat esivalmistelut on nyt tehty ja on aika ajaa duplicity ensimmäisen kerran. Ajaminen onnistuu seuraavasti:polku/scriptiin/duplicity.sh full
Ajaminen kestää todennäköisesti ihan hyvän tovin.
Seuraavilla ajokerroilla ei ole pakko antaa full argumenttia sillä duplicity huolehtii itse että täysiä backuppeja ajetaan esimerkkiscriptin tapauksessa kerran kahdessa viikossa.
Jotta backupit tulisi säännöllisesti otettua kannattaa lisätä esimerkiksi crontabiin rivi joka ajaa scriptin vaikka kerran vuorokaudessa. Backup-scriptistä kun ei ole hirveästi hyötyä jos sitä ei ajeta säännöllisesti.
Hox! Jotta backuppien salauksen saa vielä auki vaikka käytetyn koneen tiedostot katoaisivatkin tulee aluksi luodun PGP-avaimen julkinen ja salainen osa tallentaa esimerkiksi backuppaukseen käytetylle palvelimelle tai kassakaappiin cd-levylle. Lisäksi salasana kannattaa kirjoittaa vaikkapa ihan paperilapulle ja jemmata kassakaappiin.