J'ai perdu le lecteur et le système d'exploitation Ubuntu installé, à partir duquel j'ai créé une sauvegarde à l'aide de Duplicity, et je ne sais pas comment restaurer les fichiers archivés que je conserve toujours sur un autre lecteur. Ils suivent tous ces 4 notations
duplicity-full.20140106T111233Z.manifest
duplicity-full-signatures.20140106T111233Z.sigtar.gz
duplicity-full.20140106T111233Z.volxxx.difftar.gz (multiple volumes)
duplicity-full.20140106T111233Z.volxxx.difftar (multiple volumes)
Il me faut récupérer des données importantes. Y a-t'il quelque chose que je puisse faire? Serait-il suffisant pour utiliser gzip? Et si oui, comment pourrais-je les extraire facilement?
EDIT 1 En essayant vos suggestions, avec les options de restauration et --gio, je reçois ce texte:
duplicity restore file://media/ubuntu/Toshiba\ HDD/BACKUPS/Documents/ /media/ubuntu/9fb63c8e-ecb5-4c55-b4e0-282e7b4a82ff/tmp/docs/
Local and Remote metadata are synchronized, no sync needed.
Last full backup date: none
GnuPG passphrase:
Traceback (most recent call last):
File "/usr/bin/duplicity", line 1494, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 1488, in with_tempdir
fn()
File "/usr/bin/duplicity", line 1337, in main
do_backup(action)
File "/usr/bin/duplicity", line 1422, in do_backup
restore(col_stats)
File "/usr/bin/duplicity", line 697, in restore
restore_get_patched_rop_iter(col_stats)):
File "/usr/bin/duplicity", line 719, in restore_get_patched_rop_iter
backup_chain = col_stats.get_backup_chain_at_time(time)
File "/usr/lib/python2.7/dist-packages/duplicity/collections.py", line 952, in get_backup_chain_at_time
raise CollectionsError("No backup chains found")
CollectionsError: No backup chains found
/ media/ubuntu/Toshiba\HDD/BACKUPS/Documents / est l'endroit où se trouvent tous les fichiers de duplicité, et / media/ubuntu/9fb63c8e-ecb5-4c55-b4e0-282e7b4a82ff/tmp/docs / un dossier de destination temporaire dans lequel je veux restaurer les fichiers.
EDIT 2 Corrigé la barre oblique manquante dans le fichier: // média .... Maintenant, je récupère les fichiers restaurés, mais pas exactement ce à quoi je m'attendais. Il manque beaucoup de fichiers (jusqu'à 24 Go!)
root@ubuntu:/media/ubuntu/Toshiba HDD/BACKUPS/Documents# ls -la /tmp/docs/home/luis/
total 4176
drwx------ 16 root root 1000 Jun 30 19:13 .
drwx------ 3 root root 60 Jun 30 19:13 ..
drwx------ 3 1000 1000 60 Oct 23 2013 .activestate
drwxr-xr-x 2 1000 1000 60 Oct 23 2013 .ActiveState
drwx------ 3 1000 1000 60 Dec 28 2012 .Adobe
-rw------- 1 1000 1000 32120 Jan 4 12:56 .bash_history
-rw-r--r-- 1 1000 1000 220 Dec 28 2012 .bash_logout
-rw-r--r-- 1 1000 1000 3637 Dec 28 2012 .bashrc
drwx------ 3 1000 1000 60 Jan 3 14:01 .cache
drwxr-xr-x 3 1000 1000 60 Nov 16 2013 .cddb
-rw-rw-r-- 1 1000 1000 740 Jan 10 2013 .cola
drwx------ 3 1000 1000 60 Dec 29 2012 .compiz
drwxrwxr-x 3 1000 1000 80 Oct 1 2013 .composer
drwx------ 46 1000 1000 1020 Dec 8 2013 .config
drwx------ 3 1000 1000 60 Dec 28 2012 .dbus
-rw-r--r-- 1 1000 1000 25 Jul 13 2013 .dmrc
drwx------ 3 1000 1000 380 Jan 6 10:31 .dropbox
drwxr-xr-x 6 1000 1000 1660 Dec 17 2013 .dropbox-dist
drwx------ 3 root root 60 Jun 30 19:13 .Eclipse
-rw------- 1 1000 1000 50282 Jan 6 10:29 .ICEauthority
drwxrwxr-x 14 1000 1000 340 Dec 7 2013 .PlayOnLinux
-rw-r--r-- 1 root root 2077491 Nov 23 2013 .Soulseek.1385165090491
-rw-r--r-- 1 root root 2076644 Nov 23 2013 .Soulseek.1385166430938
-rw-r--r-- 1 1000 1000 9986 Dec 30 20:02 .Soulseek.1388433748295
drwxrwxr-x 2 1000 1000 60 Oct 13 2013 .SyncWall
-rw------- 1 1000 1000 109 Jan 6 10:29 .Xauthority
-rw-rw-r-- 1 1000 1000 0 Jul 29 2013 .Xauthority.25Y20W
-rw-rw-r-- 1 1000 1000 0 Jul 13 2013 .Xauthority.7K14ZW
-rw-rw-r-- 1 1000 1000 0 Jul 7 2013 .Xauthority.7K7SZW
-rw-rw-r-- 1 1000 1000 0 Jul 13 2013 .Xauthority.9X1E0W
-rw-rw-r-- 1 1000 1000 0 Sep 1 2013 .Xauthority.A3D52W
-rw-rw-r-- 1 1000 1000 0 Sep 1 2013 .Xauthority.CEUV2W
-rw-rw-r-- 1 1000 1000 0 Jul 27 2013 .Xauthority.CP7Q0W
-rw-rw-r-- 1 1000 1000 0 Sep 8 2013 .Xauthority.E1ET2W
-rw-rw-r-- 1 1000 1000 0 Aug 26 2013 .Xauthority.E32K2W
-rw-rw-r-- 1 1000 1000 0 Sep 14 2013 .Xauthority.EKK92W
-rw-rw-r-- 1 1000 1000 0 Jul 12 2013 .Xauthority.F4QRZW
-rw-rw-r-- 1 1000 1000 0 Jul 25 2013 .Xauthority.ISVZ0W
-rw-rw-r-- 1 1000 1000 0 Jul 11 2013 .Xauthority.JU3UZW
-rw-rw-r-- 1 1000 1000 0 Aug 31 2013 .Xauthority.M30S2W
-rw-rw-r-- 1 1000 1000 0 Aug 1 2013 .Xauthority.M3H20W
-rw-rw-r-- 1 1000 1000 0 Sep 9 2013 .Xauthority.MKIN2W
-rw-rw-r-- 1 1000 1000 0 Aug 28 2013 .Xauthority.RWHB2W
-rw-rw-r-- 1 1000 1000 0 Jul 15 2013 .Xauthority.SN85ZW
-rw-rw-r-- 1 1000 1000 0 Sep 15 2013 .Xauthority.T22C3W
-rw-rw-r-- 1 1000 1000 0 Jul 14 2013 .Xauthority.T6CB0W
-rw-rw-r-- 1 1000 1000 0 Jul 31 2013 .Xauthority.VF7Q0W
-rw-rw-r-- 1 1000 1000 0 Sep 9 2013 .Xauthority.WGEX2W
-rw-rw-r-- 1 1000 1000 0 Aug 31 2013 .Xauthority.WZR52W
-rw-rw-r-- 1 1000 1000 0 Jul 25 2013 .Xauthority.YQIR0W
Le plus étrange, c’est, à part tous les fichiers commençant par un point, que je ne peux pas parcourir les répertoires home/luis avec Nautilus, où se trouvaient en fait toutes mes données sauvegardées.
Utilisez duplicity
pour l'extraire:
duplicity restore file:///path_to_folder_contains_backups/ path_where_to_extract_it/
Entrez le mot de passe GnuPG, appuyez sur Enter
Par défaut, Duplicity restaure la dernière sauvegarde (comparant le temps) dans le dossier source, même s'il ne s'agit pas de la sauvegarde du même dossier. Si vous avez plusieurs sauvegardes pour différents dossiers ou si vous voulez une heure spécifique du même dossier, utilisez l'exemple de l'option --time
:
duplicity restore --time 20140106T111233Z file:///path_to_folder_contains_backups/ path_where_to_extract_it/
Impossible de voir les fichiers que vous recherchez, essayez:
Créez une fonction qui répertorie tous les fichiers contenus dans toutes les sauvegardes complètes/inc disponibles dans le dossier source:
ldup () {
for f in $(ls $1/duplicity-*.manifest.gpg); do
echo "========================================================================";
echo $f;
n=$(basename $f .manifest.gpg);
prefix=$(echo $n | awk 'BEGIN { FS = "." } ;{ print $1 }');
if [[ "$prefix" == "duplicity-full" ]]; then
t=$(echo $n | awk 'BEGIN { FS = "." } ;{ print $2 }');
else
t=$(echo $n | awk 'BEGIN { FS = "." } ;{ print $4 }');
fi;
echo -e "Creation time:\t" $t;
echo "------------------------------------------------------------------------";
duplicity list-current-files --time $t file://$1/ | grep "$2";
done;
}
Pour lister tous les fichiers (note sans queue /
):
ldup /path_to_folder_contains_backups
rechercher un motif dans les noms de fichiers:
ldup /path_to_folder_contains_backups pattern
Référence: man duplicity
Essayez d'abord de restaurer avec duplicité.duplicity --gio file:///media/backup /tmp/restore
Il y a quelques étapes raisonnablement détaillées (et généralement correctes) ici .
Détails de la clé
L'important est de décompresser tous les fichiers duplicity-full.*.difftar.gz
au même endroit, de manière à ne conserver que deux répertoires snapshot/
et multivol_snapshot/
.
Si votre fichier est dans snapshot/
alors vous avez terminé. Sinon, recherchez le répertoire dans multivol_snapshot/
au niveau du chemin où se trouvait votre fichier: vous devez réunir tous les fichiers de ce répertoire pour recréer le fichier d'origine. Les fichiers sont numérotés et peuvent être réunis à l'aide de la commande cat
. En fonction de la taille de l'original, il peut y avoir plusieurs parties.
Problème avec les instructions d'origine
Les directions liées ci-dessus suggèrent d'utiliser cat * > rescued-file
. Malheureusement, cette approche simple échoue si vous avez plus de 9 parties. Puisque *
s'agrandit dans l'ordre du dictionnaire et non dans l'ordre numérique, 10
serait répertorié avant 2
et le fichier serait reconstruit dans le mauvais ordre.
Solution de contournement
Une approche simple consiste à se rappeler que l'ordre du dictionnaire fonctionne lorsque les nombres ont la même longueur et que ?
correspond à un seul caractère. Donc, si votre plus gros fichier a trois chiffres, vous pouvez entrer manuellement:
cat ? ?? ??? > rescued-file
Ajoutez ou supprimez les motifs ?
au besoin, en fonction du plus grand numéro de fichier.
Script
Si vous avez beaucoup de fichiers à récupérer et que vous n'avez pas envie de les taper pour tous, vous préférerez peut-être utiliser un script comme celui-ci. Il répertorie le répertoire contenant pour chaque fichier, supprime les doublons de la liste, puis passe à chaque répertoire et crée un fichier content
à partir des fragments qu'il contient. (spacer
ne sert qu'à faire fonctionner $1
.)
find multivol_snapshot/ -type f -printf '%h\0' | \
sort -uz | \
xargs -0 -n 1 sh -c 'cd "$1" ; cat $(ls | sort -n) > content' spacer
Il ne vous reste plus qu'à ajouter /content
à la fin du nom de fichier recherché, et vous devriez le trouver.
Limitations
Cela ne restaure aucune des autorisations de fichiers d'origine ou la propriété. Il ne traite pas non plus des sauvegardes incrémentielles, mais ensuite les instructions liées ont également une impasse sur ce point - ils suggèrent simplement d'utiliser rdiff
'pour assembler les fichiers' et renvoyer le lecteur à man rdiff
.
source: SF SE
ici vous pouvez trouver un programme Java pour une restauration facile des sauvegardes compliquées.
Déjà Dup utilise un format opaque pour les fichiers stockés dans votre emplacement de sauvegarde. Vous devez utiliser Déjà Dup ou un autre outil basé sur la duplicité pour restaurer vos fichiers (voir ce guide de restauration ).