Duplicity est un logiciel de sauvegarde permettant d'effectuer des sauvegarder compressées, sécurisées (via GnuPG), complètes et différentielles. Il prend en charge la copie locale ainsi que nombreux protocoles comme FTP, IMAP, RSync, Amazon S3, WebDAV, etc.
Duplicity peut être utilisé pour effectuer des sauvegardes de la manière suivante :
duplicity --no-encryption dossier_a_sauvegarder/ protocole://utilisateur@adresse_du_serveur/dossier/
duplicity --no-encryption /home/www-data/mon_site/ ftp://moi@ftp.example.com/backup/
La première sauvegarde ainsi effectuée sera complète, et chaque nouvelle utilisation de cette commande créera une sauvegarde différentielle (seuls les nouveaux fichiers et les fichiers modifiés seront transférés vers la destination).
Les sauvegardes de Duplicity sont des archives au format .tar. Pour retrouver la dernière version d'un dossier sauvegardé, il faudra utiliser Duplicity afin d’interpréter leur contenu.
duplicity --no-encryption protocole://utilisateur@adresse_du_serveur/dossier/ dossier_a_sauvegarder/
duplicity --no-encryption ftp://moi@ftp.example.com/backup/ /home/www-data/mon_site/
Il est possible d'ajouter le paramètre –restore-time
pour préciser la version des données à récupérer.
duplicity --no-encryption --restore-time 3D ftp://moi@ftp.example.com/backup/ /home/www-data/mon_site/
Dépendant de l'endroit où l'on souhaite stocker une sauvegarde, on peut être amener à vouloir la chiffrer pour préserver le caractère privé de ses données. On utilisera alors Duplicity avec GnuPG.
Il est nécessaire de posséder au moins un couple clé privée-clé publique pour suivre les exemples ci après. Voir la page GnuPG pour plus d'informations.
Pour la sauvegarde ou la restauration des données, le paramètre –no-encryption
pourra être remplacé par les 2 paramètres –encrypt-key
et –sign-key
suivis chacun de l'identifiant à 8 caractères d'une clé (il faudra bien entendu posséder la clé privée pour pouvoir effectuer une restauration).
duplicity --encrypt-key 1234ABCD --sign-key 1234ABCD /home/www-data/mon_site/ ftp://moi@ftp.example.com/backup/
IMAP est un protocole de consultation de boîte aux lettres, mais avec la taille actuelle des boîtes aux lettres fournies avec des services comme Gmail (7Go), il peut être intéressant de mettre a profit cet espace en le détournant pour y stocker des sauvegardes.
duplicity --volsize 5 --imap-mailbox Mon_dossier_IMAP dossier_a_sauvegarder imaps://utilisateur:mot_de_passe@adresse_du_serveur
duplicity --volsize 5 --imap-mailbox Backup /home/www-data/mon_site/ imaps://moi@gmail.com:mot_de_passe@imap.gmail.com
Voici un exemple de script pouvant être appelé régulièrement par Cron pour effectuer une sauvegarde complète d'un serveur vers un emplacement accessible via FTP. La première sauvegarde sera complète, les suivantes différentielle, et toutes les 2 semaines une nouvelle sauvegarde complète sera crée. A chaque exécution du script, les sauvegardes de plus d'un mois seront effacées de l'emplacement de destination.
export PASSPHRASE='phrase de passe de la clé GnuPG' export FTP_PASSWORD='mot de passe associé au compte FTP' duplicity --encrypt-key 1234ABCD --sign-key 1234ABCD --full-if-older-than 2W --exclude /mnt --exclude /tmp --exclude /proc --exclude /sys / ftp://moi@ftp.example.com/backup/ duplicity remove-older-than 1M --force --encrypt-key 1234ABCD --sign-key 1234ABCD ftp://moi@ftp.example.com/backup/
Pour des raisons de sécurité évidentes, ce script devra être exécuté uniquement par l'utilisateur root
et ne devra pas être accessible par n'importe quel utilisateur.
Duplicity peut être configuré par l'utilisation de nombreux paramètres, dont voici quelques-uns :
–no-encryption
: Indique à Duplicity de ne pas utiliser GnuPG pour chiffrer les données. Par défaut, Duplicity tente de chiffrer avec la clé définie par défaut.–restore-time
: Suivi de la date à laquelle on souhaite effectuer la restauration ou d'intervalle de temps. L'intervalle s'exprime sous la forme “XD” pour le nombre de jours (avec X le nombre de jours), “XW” pour le nombre de semaines, “XM” pour le nombre de mois.–encrypt-key
: Suivi de l'identifiant de la clé GnuPG à utiliser pour chiffrer l'archive avant de la stocker dans la destination.–sign-key
: Suivi de l'identifiant de la clé GnuPG à utiliser pour signer l'archive avant de la stocker dans la destination.–exclude
: Suivi d'une expression ou d'un nom de fichier ou dossier à exclure de la sauvegarde.–imap-mailbox
: Suivi du nom du dossier à utiliser avec le protocole IMAP.–volsize
: Suivi de la taille d'une archive en Méga-octets.Pour connaître tous les paramètre disponibles et obtenir plus de détails ne pas hésiter à consulter son manuel (en Anglais).