Backup con Duplicity

In questo tutorial verrà spiegato come effettuare l'installazione di Duplicity, utility per effettuare backup completi e/o incrementali.
Duplicity effettua il backup delle cartelle comprimendole in un archivio criptato che può essere salvato su nostro Object-Storage

Installazione:

Una volta effettuato il login nella macchina sarà necessario:

  • Aggiornare la lista dei pacchetti:

    Digitare su console i seguenti comandi per aggiornare il sistema operativo:
    Sistema operativo Debian/Ubuntu:

    sudo apt-get update

    Sistema operativo CentOS/Fedora:

    sudo yum update

  • Installare Duplicity:

    Digitare su console i seguenti comandi per installare duplicity:
    Sistema operativo Debian/Ubuntu:

    sudo apt-get install -y duplicity

    Sistema operativo CentOS/Fedora:

    sudo yum install -y epel-release duplicity gcc rsync gpg python python-devel python-pip libffi-devel openssl-devel

  • Installare Swift:

    Installa i pacchetti di sviluppo: Sistema operativo Debian/Ubuntu:

    sudo apt-get install -y python-keystoneclient python-swiftclient

    Sistema operativo CentOS/Fedora:

    sudo pip install python-keystoneclient && sudo pip install python-swiftclient

Alcuni esempi di un possibile utilizzo:

Backup tramite Swift:
Per poter caricare i backup sull' Object Storage, è necessario prima creare delle variabili contenenti i dati di accesso:

export SWIFT_USERNAME= <mail di accesso a ECS>
export SWIFT_TENANTNAME= <mail di accesso a ECS>
export SWIFT_PASSWORD= <password di accesso a ECS>
export SWIFT_AUTHURL=https://api.it-mil1.entercloudsuite.com/v2.0
export SWIFT_AUTHVERSION=2

ATTENZIONE: Queste variabili andranno perdute nel caso si esca dalla sessione della console. Consiglio caricare le veriabili tramite script durante l'avvio del backup, oppure (non consigliato caricarle durante l'avvio del sistema operativo o accesso in console (Vedi la sezione CRON)

Una volta inseriti i dati sopracitati, è possibile effettuare le seguenti operazioni:

  • Backup completo di una cartella/più cartelle in un container:

duplicity full /var/www/ swift://containertest

  • Backup incrementale di una cartella/più cartelle in un container:

duplicity incremental /var/www/ swift://containertest

  • Backup di una cartella escludendone un file o una cartella interna in un container:

duplicity full /var/www/ --exclude **/test.php swift://containertest

  • Ripristino del backup da un container:

duplicity swift://containertest/ /var/www/

Utilizzo con CRON:

Cron è un demone di sistema in esecuzione sui sistemi GNU/Linux; esso si occupa di eseguire operazioni pianificate in una data e/o ora prestabilita. Per ulteriori informazioni, consultare il manuale di cron e crontab a questi indirizzi:

http://linux.die.net/man/8/cron
http://linux.die.net/man/1/crontab

1. Realizzare uno script contenente i comandi per Duplicity da eseguire in /usr/local/bin/backup-duplicity.sh come superutente (per creare lo script si può usare un editor come Vi (http://linux.die.net/man/1/vi)):

#!/bin/sh
# Backup Duplicity su FTP server
export SWIFT_USERNAME=<mail di accesso a ECS>
export SWIFT_TENANTNAME=<mail di accesso a ECS>
export SWIFT_PASSWORD=<password di accesso a ECS>
export SWIFT_AUTHURL= https://api.it-mil1.entercloudsuite.com/v2.0
export SWIFT_AUTHVERSION=2
export PASSPHRASE=<password per il backup>
duplicity [full/incremental] <percorso della/e cartella/e> swift ://<nomecontainer>
unset PASSPHRASE
unset SWIFT_USERNAME
unset SWIFT_TENANTNAME
unset SWIFT_PASSWORD
unset SWIFT_AUTH_URL

INFO Per effettuare il backup di un Database consigliamo di effettuare un mysqldump con il seguente comando:
"mysqldump -u ${USERDB} $database > ${BACKUP_STAGINGPATH}/${DUMP}"
e caricare il file successivamente con Duplicity sull'Object Storage. Il comando può essere riportato nello script

2. Rendere eseguibile lo script creato in precedenza:

chmod +x /usr/local/bin/backup-duplicity.sh

3. Aggiungere l'operazione a cron:

sudo crontab -e

Tramite questo comando, il file di configurazione dei jobs di cron verrà aperto tramite l'editor “vi”.

Premere il tasto “i” ed inserire la seguente riga:

0 0 * * * /usr/local/bin/backup-duplicity.sh >> /var/log/duplicity_backup.log

Premere il tasto ESC due volte e digitare “:wq” (senza virgolette) Se appare il seguente messaggio, o simile, avrete la conferma che il l’inserimento sarà andato a buon fine:

crontab: installing new crontab

Accedere ai container di Backup

1) Accedere ad horizon utilizzando il seguente link:https://horizon.entercloudsuite.com
2) Selezionare Object Store e successivamente Containers nel menù laterale a sinistra.
3) Selezionare il Container di Backup per visualizzare i file