Я потерял диск и на нем установлена ОС Ubuntu, из которой я создал резервную копию с помощью Duplicity, и я не знаю, как восстановить архивные файлы, которые я до сих пор храню на другом диске. Все они следуют этим 4 обозначениям
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)
Есть важные данные, которые мне нужно восстановить. Что я могу сделать? Было бы достаточно использовать gzip? И если да, то как я мог бы легко извлечь их все?
РЕДАКТИРОВАТЬ 1 Испытывая ваши предложения, как с опциями восстановления, так и с параметром --gio, я получаю следующий текст:
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 / - это место, где находятся все файлы дубликатов, и / media / ubuntu / 9fb63c8e-ecb5-4c55-b4e0-282e7b4a82ff / tmp / docs / временная папка назначения, в которую я хочу восстановить файлы.
РЕДАКТИРОВАТЬ 2 Исправлена недостающая косая черта в файле: // media .... Теперь я получаю восстановленные файлы, но не совсем то, что ожидала. Отсутствует много файлов (до 24 ГБ!)
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
Самое странное, что помимо всех файлов, начинающихся с точки, я не могу просматривать каталоги home / luis с помощью Наутилус, где на самом деле были все мои резервные копии.
Использование duplicity
для извлечения его:
duplicity restore file:///path_to_folder_contains_backups/ path_where_to_extract_it/
Вводят пароль GnuPG, Нажатие Вводят
По умолчанию, восстановления Двуличности в последний раз резервное копирование (сравнение времени) в исходной папке даже не резервное копирование для той же папки. Если у Вас есть несколько резервных копий для различных папок, или Вы хотите определенное время той же папки, используете --time
пример опции:
duplicity restore --time 20140106T111233Z file:///path_to_folder_contains_backups/ path_where_to_extract_it/
Неспособный видеть файлы Вы ищете, пробуете:
Создают функцию, которые перечисляют все файлы, содержавшиеся во всех резервных копиях full/inc, доступных в исходной папке:
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;
}
Для списка всех файлов (отмечают без хвоста /
):
ldup /path_to_folder_contains_backups
ищут шаблон в именах файлов:
ldup /path_to_folder_contains_backups pattern
Ссылка: man duplicity
Сначала попытайтесь восстановить с двуличностью.
duplicity --gio file:///media/backup /tmp/restore
Существуют некоторые обоснованно детализированные (и главным образом корректны) шаги здесь.
Ключевые детали
Ключевой пункт должен распаковать весь из duplicity-full.*.difftar.gz
файлы в том же месте, так, чтобы с Вами оставили всего два snapshot/
и multivol_snapshot/
каталоги.
Если Ваш файл находится в snapshot/
затем Вы сделаны. Иначе найдите каталог в multivol_snapshot/
в пути, где Ваш файл раньше был: необходимо объединиться все файлы в этом каталоге для воссоздания исходного файла. Файлы пронумерованы и могут быть объединены с помощью cat
команда. В зависимости от того, насколько большой оригинал был, может быть много частей.
Проблема с исходными инструкциями
Направления, связанные выше, предлагают использовать cat * > rescued-file
. К сожалению, этот простой подход перестал работать, если у Вас есть больше чем 9 частей. С тех пор *
расширяется в лексикографическом порядке, не числовом порядке, 10
был бы перечислен прежде 2
, и файл был бы восстановлен в неправильном порядке.
Обходное решение
Один простой подход должен помнить, что лексикографический порядок действительно работает, когда числа являются той же длиной, и что ?
соответствует отдельному символу. Таким образом, если Ваш самый большой файл имеет три цифры, можно вручную войти:
cat ? ?? ??? > rescued-file
Добавьте или удалите ?
шаблоны по мере необходимости, в зависимости от самого большого номера документа.
Сценарий
Если у Вас есть много файлов, чтобы восстановить и сделать не необычный ввод, что для всех них, Вы могли бы предпочесть использовать сценарий, такой как это. Это перечисляет содержание каталога для каждого файла, удаляет дубликаты из списка, затем переходит к каждому каталогу и создает a content
файл от фрагментов там. (spacer
должен только сделать $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
Теперь просто необходимо добавить /content
в конец любого имени файла Вы искали, и необходимо найти его.
Ограничения
Это не восстанавливает ни одних из исходных полномочий файла или владения. Это также не имеет дело с возрастающими резервными копиями, но затем связанные инструкции также поражают что-то вроде тупика по этому вопросу — они просто предлагают использовать rdiff
'чтобы сшить файлы вместе' и отослать читателя к man rdiff
.
источник: SF SE
здесь можно найти программу Java для легкого восстановления сложного резервного копирования.
Дубликат DГ©jГ использование непрозрачный формат для файлов сохранен в Вашем местоположении резервирных копий. Необходимо использовать Дубликат DГ©jГ или другой основанный на двуличности инструмент для восстановления файлов (См. это руководство по восстановлению ).