30-06-06 10:33
Duplicity - backup alat
piše IVAN RAKO
Duplicity je backup alat koji enkriptira podatke, sprema ih u tar arhivu, i šalje na udaljeni server nekim mehanizmom. Ti mehanizmi mogu biti local, ftp, ssh/scp, rsync. U ovom primjeru pokazat ćemo kako se to obavlja ftp-om. Vrlo sličan postupak je i sa ssh/scp, ili nekim drugim mehanizmom.
Duplicity postoji kao Debian paket, i instalira se naredbom:
# apt-get install duplicity
Da bi se podaci mogli enkriptirati, potrebno je izgenerirati PGP ključeve s GnuPG-em. To se može napraviti naredbom:
# gpg --gen-key
S naredbom:
# gpg --list-keys
možemo vidjeti da li smo stvarno izgenerirali ključ. Primjer ispravnog izlaza naredbe je:
/root/.gnupg/pubring.gpg
------------------------
pub 1024D/B306740F 2006-06-15
uid System Sheriff <root@jurina.srce.hr>
sub 2048g/666452C2 2006-06-15
Zatim na udaljenom računalu otvorimo neki korisnički račun na kojeg ćemo spremati backup podataka.
Također je bitno zapamtiti passphrase i ime ključa (u gornjem izlazu, ime ključa je 'B306740F'), te podatke za backup korisnički račun, i to moramo ubaciti u sljedeću skriptu za backup:
-----------------------------------------------------------
#!/bin/sh
# Duplicity backup script
export FTP_PASSWORD="neka_lozinka"
export PASSPHRASE="neki_gnupg_passphrase"
KEY="neki_key"
BACKUP_LOGIN="neki_login"
BACKUP_HOST="neki.host.hr"
# primjer za neke direktorije
duplicity --encrypt-key "$KEY" --sign-key "$KEY" \ --include /etc \
--include /root \
--include /home \
--include /var/lib/mysql \
--include /var/www \
--include /var/mail \
--exclude '**' \
/ ftp://$BACKUP_LOGIN@$BACKUP_HOST/
# ako zelite full backup, primjer izgleda ovako:
# duplicity --encrypt-key "$KEY" --sign-key "$KEY" \
# --exclude /proc \
# / ftp://$BACKUP_LOGIN@$BACKUP_HOST/
-----------------------------------------------------------
Tu skriptu možemo postaviti u cron da se svakodnevno izvršava:
# ln -s /put/do/backup/skripte /etc/cron.daily/backup
Za vraćanje podataka iz backupa brine se sljedeća skripta:
-----------------------------------------------------------
#!/bin/sh
# Duplicity restore script
export FTP_PASSWORD="neka_lozinka"
export PASSPHRASE="neki_gnupg_passphrase"
BACKUP_LOGIN="neki_login"
BACKUP_HOST="neki.host.hr"
export FTP_PASSWORD="burek"
export PASSPHRASE="1234567890qwertyuiop"
if [ -z "$2" ]; then
echo "Usage: $0 <what_restore> <where_restore>"
exit 1
fi
duplicity --file-to-restore $1 ftp://$BACKUP_LOGIN@$BACKUP_HOST/ $2
-----------------------------------------------------------
Prvi argument te skripte je datoteka koju želimo vratiti bez početnog "/" (npr. za /etc/passwd upiše se etc/passwd), a drugi argument je datoteka u koju želimo vratiti (ako želimo npr. vratiti /etc/passwd u /tmp/passwd).
|