Duplicity
Duplicity est un outil en ligne de commande utilisé pour effectuer des backups de fichiers sur un répertoire ou une machine distante. Sous Ubuntu, l'application deja-dup
est installée par défaut, proposant une interface graphique simple mais limitée. Cette application n'a pas été utilisée et a été désinstallée. Mais elle peut être utile pour des besoins simples.
L'outil a été utilisé dans les scripts de backups (base de données, SVN, FileSystème) vers une machine distante à l'aide du protocole FTP.
Sommaire
Votre avis
Current user rating: 80/100 (3 votes)
|
|
Option de backup
Tous les exemples présentés effectuent un backup vers un serveur FTP, en cryptant les données. Pour cela, il est nécessaire que deux variables d'environnement soient spécifiées avant l'exécution de la commande duplicity
:
Paramètre | Description |
---|---|
PASSPHRASE | Phrase utilisée pour le cryptage. |
FTP_PASSWORD | Mot de passe du compte utilisé pour le transfert FTP. |
L'instruction export
est utilisée pour spécifier ces valeurs. Il est important d'utiliser l'instruction unset
ensuite pour les effacer du contexte d'exécution.
#export PASSPHRASE="My Pass Phrase" #export FTP_PASSWORD=FTP_PASSWORD #duplicity ... #unset PASSPHRASE #unset FTP_PASSWORD
Attention à l'utilisation de l'instruction export
, surtout pour la PASSPHRASE. En effet, si celle-ci contient des espaces, il est impératif de la placer entre le caractère "
.
Dans tous les exemples, les clés suivantes doivent être remplacées par:
Clé | Description |
---|---|
<FTP_USER> | Compte utilisé pour se connecter en FTP. |
<FTP_SERVER> | Nom ou adresse IP du serveur FTP. |
Backup d'un répertoire
La commande suivante permet de sauvegarder le répertoire /tmp/toBackup
, vers le répertoire backup
sur le serveur FTP.
#duplicity /tmp/toBackup ftp://<FTP_USER>@<FTP_SERVER>/backup
A noter, si le répertoire n'existe pas sur le serveur FTP, celui-ci sera créer automatiquement. La première sauvegarde sera une "full", les suivantes seront incrémentales.
Backup full d'un répertoire
L'option full
permet de forcer une sauvegarde complète du répertoire /tmp/toBackup
, vers le répertoire backup
sur le serveur FTP.
#duplicity full /tmp/toBackup ftp://<FTP_USER>@<FTP_SERVER>/backup
Backup full tous les X jours d'un répertoire
L'option --full-if-older-than
, nécessitant un interval, permet de forcer une sauvegarde complète du répertoire /tmp/toBackup
, si la précédente complète date de plus de 15 jours, vers le répertoire backup
sur le serveur FTP.
#duplicity /tmp/toBackup --full-if-older-than 15D ftp://<FTP_USER>@<FTP_SERVER>/backup
Backup multiples répertoires avec racine non commune
Il est parfois nécessaire d'effectuer une sauvegarde de fichiers / répertoires ne se trouvant pas dans la même racine. Par exemple, pour sauvegarder les répertoires /usr/toBackup1
et /tmp/toBackup2
, il faut utiliser les paramètres:
Paramètre | Description |
---|---|
--include | Spécifie les emplacements à inclure |
--exclude | Permet de tout exclure, sauf emplacement spécifier dans le paramètre --include .
|
#duplicity --include '/usr/toBackup1' --include '/tmp/toBackup2' --exclude '**' / ftp://<FTP_USER>@<FTP_SERVER>/backup
Les arguments permettent de sauvegarder le répertoire /
, soit la racine de la machine, en incluant les répertoires /usr/toBackup1
et /tmp/toBackup2
, mais en excluant tous les autres emplacements à l'aide de l'argument --exclude '**'
Purge
La commande duplicity permet d'effectuer des suppressions dans les sauvegardes réalisées.
Suppression par rapport aux dernières sauvegardes complètes
L'option remove-all-but-n-full
, nécessitant un nombre, permet de supprimer toutes les sauvegardes plus anciennes que la Xème complète. L'argument force
doit être utilisé pour déclencher la suppression, sinon un listing est uniquement réalisé. La commande suivante permet de ne conserver que deux sauvegardes complêtes, et leur incrémentales, dans le répertoire backup
sur le serveur FTP.
#duplicity remove-all-but-n-full 2 --force ftp://<FTP_USER>@<FTP_SERVER>/backup
Vérification et listing
Vérification
L'option verify
permet de réaliser le contrôle d'une sauvegarde dans un répertoire, sur le serveur FTP par exemple, par rapport au répertoire source, celui qui est sauvegardé. La commande suivante permet de contrôler le contenu du répertoire distant backup
avec le répertoire sauvegardé /tmp/toBackup
:
#duplicity verify ftp://<FTP_USER>@<FTP_SERVER>/backup /tmp/toBackup
NcFTP version is 3.2.5 Les métadonnées locales et distantes sont déjà synchronisées. Aucune synchronisation nécessaire. Date de dernière sauvegarde intégrale : Wed Jan 11 04:15:02 2012 Difference found: File . has mtime Mon Jan 16 04:15:02 2012, expected Sat Jan 14 04:15:01 2012 Difference found: File 20120109_dump_svn_study_full.svndump.bz2 is missing Difference found: File 20120114_dump_svn_study_incr_39_to_39.svndump.bz2 is missing Difference found: New file 20120116_dump_svn_study_full.svndump.bz2 Difference found: File version has mtime Mon Jan 16 04:15:02 2012, expected Sat Jan 14 04:15:01 2012 Difference found: File version/40 has mtime Mon Jan 16 04:15:01 2012, expected Mon Jan 9 04:15:01 2012 Vérification complète : 6 files compared, 6 differences found.
Listing
L'option list-current-files
permet de lister le contenu d'une sauvegarde. La commande suivante permet de lister le contenu du répertoire distant backup
:
#duplicity list-current-files ftp://<FTP_USER>@<FTP_SERVER>/backup
NcFTP version is 3.2.5 Les métadonnées locales et distantes sont déjà synchronisées. Aucune synchronisation nécessaire. Date de dernière sauvegarde intégrale : Wed Jan 11 04:15:02 2012 Sat Jan 14 04:15:01 2012 . Mon Jan 9 04:15:02 2012 20120109_dump_svn_study_full.svndump.bz2 Sat Jan 14 04:15:01 2012 20120114_dump_svn_study_incr_39_to_39.svndump.bz2 Sat Jan 14 04:15:01 2012 version Mon Jan 9 04:15:01 2012 version/40
Une option temporaire peut être combiné afin de spécifier le jour de la sauvegarde interrogée. La commande suivante permet de lister le contenu du répertoire distant backup
, il y a 20 jours:
#duplicity -t 20D list-current-files ftp://<FTP_USER>@<FTP_SERVER>/backup
NcFTP version is 3.2.5 Les métadonnées locales et distantes sont déjà synchronisées. Aucune synchronisation nécessaire. Date de dernière sauvegarde intégrale : Wed Jan 11 04:15:02 2012 Tue Dec 27 00:25:10 2011 . Tue Dec 27 00:31:48 2011 20111227_dump_svn_study_full.svndump.bz2 Tue Dec 27 00:31:48 2011 version Tue Dec 27 00:31:47 2011 version/32
Option de restauration
Restauration d'un fichier
Pouvoir sauvegarder les fichiers offre une sécurité importante pour les données, mais il est nécessaire de pouvoir les restaurer. Ceci s'effectue à l'aide de l'option --file-to-restore
. La commande suivante permet de restaurer le fichier folder1/folder1.1/file.txt
, depuis le répertoire distant backup
, vers l'emplacement /tmp/toRestore/file.txt
.
#duplicity --file-to-restore folder1/folder1.1/file.txt ftp://<FTP_USER>@<FTP_SERVER>/backup /tmp/toRestore/file.txt
Voir aussi
Quelques liens utilisés pour l'étude de Duplicity et la rédaction de l'article:
https://help.ubuntu.com/community/DuplicityBackupHowto