Проблема CentOS, извлекающая резервную копию Plesk
В настоящее время я переезжаю на новый сервер, и у меня в Dropbox есть файл резервной копии Plesk, созданный с расширением Plesk Dropbox Backup, размер файла.tar составляет около 55 ГБ.
Я загрузил его на сервер в папку /var/lib/psa/dumps.
Проблема в том, что я пытаюсь извлечь файл tar с помощью tar xvf, и я получаю следующую ошибку:
tar: неожиданный EOF в архиве tar: ошибка не может быть исправлена: выход сейчас
После тщательного поиска я попытался запустить bzip2recover и получил следующую ошибку:
извините, я не смог найти границы блоков.
У меня проблема в том, что у меня больше нет доступа к старому серверу Plesk, откуда берется резервная копия, поэтому очень важно, чтобы я мог получить доступ к файлам из этого файла резервной копии, в этом файле резервной копии есть около 100 сайтов и только около 30 находятся в процессе извлекается до того, как выдает ошибку.
Есть ли способ обойти это?
2 ответа
Похоже, вы немного ошиблись в диагностике проблемы, и, следовательно, ваш вопрос, скорее всего, является желаемым. У вас нет проблем с извлечением архива tar. Скорее ваша проблема в том, как вы ее произвели в первом случае.
Есть несколько шагов, которые вы можете предпринять, чтобы подтвердить, что данные действительно потеряны.
Сообщение об ошибке указывает, что ваш архив обрезан. Что будет делать tar в случае усеченного архива, так это то, что он будет извлекать любые файлы и как можно больше из последнего файла. Поэтому вам нужно внимательно посмотреть на самый последний файл, извлеченный tar. Если этот файл имеет правильное имя и содержимое файла является правильным, за исключением того, что извлеченный файл был усечен, то вы подтвердили, что ваш архив действительно усечен. Вы можете сравнить последние несколько блоков последнего файла с последними несколькими блоками архива для дополнительной проверки этого факта. Однако обратите внимание, что если ваш архив был усечен в середине блока, этот частичный блок не будет включен в последний извлеченный файл.
Кроме того, сравните размер извлеченного каталога с размером архива. Поскольку вы не использовали сжатие для своего архива tar, ожидается, что размеры будут одинаковыми. Поскольку накладные расходы tar немного меньше, чем в большинстве файловых систем, фактически ожидается, что общий размер извлеченного каталога будет немного больше исходного файла tar. Для более точного сравнения размеров вы можете создать новый архив tar из извлеченного каталога и сравнить размеры двух файлов tar.
Если извлеченный каталог на самом деле имеет тот же размер, что и архив tar, то вы можете ожидать, что все извлекаемые данные будут находиться внутри этого каталога.
Вы все еще можете спросить, есть ли надежда, что вы пропустили некоторые варианты. Очень маловероятно, что где-то по пути заголовок файла в архиве будет поврежден таким образом, что tar подумает, что файл больше, чем он есть на самом деле, и по чистой случайности он все же нашел правильный заголовок файла после того, как тот.
Это крайне маловероятно, но если это действительно произошло с вами, то где-то в извлеченном каталоге вы сможете найти файл, который больше, чем должен был быть. Если вы обнаружите, что извлеченный файл на несколько ГБ больше ожидаемого, возможно, вам посчастливится найти в нем некоторые недостающие данные.
Однако уже почти наверняка усечен ваш архив, и очень маловероятно, что какие-либо из метаданных будут повреждены таким образом, что все равно позволит tar прочитать архив и обнаружить, что он был усечен. Таким образом, мы можем более или менее прийти к выводу, что любые данные, которые вы пропустили, связаны с усеченным архивом.
В этом случае вывод заключается в том, что из 100 сайтов, которые вы хотели сделать резервную копию, вы фактически сделали только резервную копию 30. И у вас нет резервной копии последних 70.
Таким образом, мы могли бы сформулировать вопрос следующим образом:
Мне нужно восстановить 70 сайтов, но у меня нет резервной копии.
Есть ли способ обойти это?
И когда говорится так, ответ очевиден: нет.
Так что вы можете сделать сейчас? Вам придется вернуться и найти машину с оригинальными данными. Потому что это единственное место, где существуют эти данные.
Кроме этого, ваш последний вариант - изобрести машину времени, чтобы вернуться и проверить свои восстановления, пока не стало слишком поздно. И я боюсь, что это чуть более выполнимо, чем восстановление данных, для которых у вас нет резервной копии.
Перечислены ли файлы внутри архива, если вы используете tar tvf [Filename]?
Если ваш сервер был довольно старым, формат файла tar мог бы измениться по сравнению с тем, который использует ваш новый сервер. Использование опции --posix или одного из других в выборе формата архива на странице man tar может помочь.