Не мог Разархивировать tar gz.bz2

Мы выполняем ежедневные резервные копии нашего сервера MySQL. Используя следующий сценарий:

  [ ! -d "${DEST}" ] && mkdir -p "${DEST}"

FILE=${DEST}/mysql-live.${NOW}-$(date +"%T").tar.gz.bz2
# get around error
mysqldump --single-transaction -u $MUSER -h $MHOST -p$MPASS DB | bzip2 -k -v > $FILE

Теперь, когда я пытаюсь извлечь с tar xvjf, я получаю ошибку. Это разархивирует с bunzip2 в tar.gz файл, но когда я попытаюсь извлечь tar использования xvf, xzvf, gunzip, это показывает не архив gzip. Однако, если я попытаюсь переименовать его только к tar, то это покажет не архив tar.

Я немного смущен здесь, поскольку у меня заканчиваются опции, если у кого-либо есть какие-либо идеи. Это качалось бы. Это находится на CentOS.

0
задан 3 November 2014 в 20:07
1 ответ

Ваша команда

mysqldump --single-transaction -u $MUSER -h $MHOST -p$MPASS DB | bzip2 -k -v > $FILE

говорит дамп базы данных и конвейер вывода на bzip2, который должен записать stdout в $FILE.

Содержимое stdin будет сжато и записано, например, на a.tar.gz.bz2. Это не создает ни tar-архив, ни gzip-сжатый tar-архив (.tar.gz), а просто создает .bz2-сжатый tar-архив с запутанным именем.

Когда вы пытаетесь извлечь содержимое архива (по неизвестным причинам), вы пытаетесь использовать утилиту tar и неожиданно получаете сообщение об ошибке, вероятно, что-то вроде

tar -xvjf a.tar.gz.bz2
tar: This does not look like a tar archive
tar: Skipping to next header
tar: Exiting with failure status due to previous errors

Что верно, потому что файл не является bzip-сжатым gzip-сжатым tar-архивом. Скорее всего, вам нужно что-то вроде

bunzip a.tar.gz.bz2

Поскольку вы не генерируете ни tar-архив, ни сжатый gzip-архив, вам, вероятно, не следует делать .tar.gz частью имени файла, так как, как вы обнаружили, это просто приводит к путанице.

3
ответ дан 4 December 2019 в 12:32

Теги

Похожие вопросы