Назад | Перейти на главную страницу

Проблема с CentOS при извлечении tar из резервной копии Plesk

В настоящее время я перехожу на новый сервер, и у меня есть файл резервной копии Plesk в Dropbox, созданный с расширением Plesk Dropbox Backup, размер файла .tar составляет около 55 ГБ.

Скачал на сервер в папку / var / lib / psa / dumps.

Проблема в том, что я пытаюсь извлечь tar-файл с помощью tar xvf, и получаю следующую ошибку:

tar: Неожиданный EOF в архиве tar: Ошибка не восстанавливается: сейчас выйти

После тщательного поиска я попытался запустить bzip2recover и получил следующую ошибку:

извините, я не смог найти границы блока.

У меня проблема в том, что у меня больше нет доступа к старому серверу Plesk, с которого создается резервная копия, поэтому важно, чтобы я мог получить доступ к файлам из этого файла резервной копии, в этом файле резервной копии около 100 сайтов, и только около 30 находятся в извлекается до того, как выдает ошибку.

Есть ли способ обойти это?

Это звучит так, будто вы немного ошиблись в диагнозе, и, следовательно, ваш вопрос, скорее всего, выдает желаемое за действительное. У вас нет проблем с распаковкой tar-архива. Скорее ваша проблема в том, как вы его создали в первом случае.

Есть несколько шагов, которые вы можете предпринять, чтобы убедиться, что данные действительно потеряны.

Сообщение об ошибке указывает на то, что ваш архив усечен. Что tar будет делать в случае усеченного архива, так это то, что он будет извлекать все файлы, которые он может, и как можно большую часть последнего файла. Поэтому вам нужно внимательно посмотреть на самый последний файл, извлеченный tar. Если этот файл имеет допустимое имя и содержимое файла правильное, за исключением того, что извлеченный файл был усечен, значит, вы подтвердили, что ваш архив действительно усечен. Вы можете сравнить несколько последних блоков последнего файла с несколькими последними блоками архива для дополнительной проверки этого факта. Однако обратите внимание, что в случае, если ваш архив был усечен в середине блока, этот частичный блок не будет включен в последний извлеченный файл.

Более того, сравните размер извлеченного каталога с размером архива. Поскольку вы не использовали сжатие для своего tar-архива, ожидается, что размеры будут аналогичными. Поскольку накладные расходы tar немного меньше, чем у большинства файловых систем, общий размер извлеченного каталога фактически должен быть немного больше, чем исходный файл tar. Для более точного сравнения размеров вы можете создать новый tar-архив из извлеченного каталога и сравнить размеры двух tar-файлов.

Если извлеченный каталог действительно имеет тот же размер, что и архив tar, то вы можете ожидать, что все восстанавливаемое будет внутри этого каталога.

Вы все равно можете спросить, есть ли надежда, что вы пропустили некоторые варианты. Существует очень маловероятная вероятность того, что где-то по пути заголовок файла в архиве был поврежден таким образом, что tar решил, что файл больше, чем он был на самом деле, и по чистому совпадению он все еще находил действительный заголовок файла после который.

Это крайне маловероятно, но если это действительно произошло с вами, то где-нибудь в извлеченном каталоге вы сможете найти файл, который больше, чем должен был быть. Если вы обнаружите, что извлеченный файл на несколько ГБ больше, чем ожидалось, возможно, вам повезет найти некоторые недостающих данных внутри него.

Однако уже практически очевидно, что ваш архив усечен, и очень маловероятно, что какие-либо метаданные были повреждены таким образом, чтобы tar по-прежнему мог читать архив и обнаруживать, что он усечен. Таким образом, мы более или менее можем сделать вывод, что любые данные, которые вам не хватает, связаны с усеченным архивом.

В этом случае можно сделать вывод, что из 100 сайтов, которые вы хотели сделать резервную копию, вы фактически сделали резервную копию только 30. И у вас нет резервной копии последних 70.

Итак, мы могли бы сформулировать вопрос следующим образом:

Мне нужно восстановить 70 сайтов, но у меня нет резервной копии.

Есть ли способ обойти это?

И в таком случае ответ очевиден: нет.

Так что же теперь делать? Вам придется вернуться и найти машину с исходными данными. Потому что это единственное место, где существуют эти данные.

В остальном ваш последний вариант - изобрести машину времени, чтобы вернуться и проверить свои восстановления, пока не стало слишком поздно. И я боюсь, что это просто немного более осуществимо, чем восстановление данных, для которых у вас нет резервной копии.

Перечислены ли файлы внутри архива, если вы используете tar tvf [Filename]?

Если ваш сервер был довольно старым, формат tar-файла мог измениться по сравнению с тем, который использует ваш новый сервер. Использование опции --posix или одной из других в выборе формата архива на странице руководства tar может помочь.