bitrixtar

Зачастую нам нужно достать несколько файлов с архива созданных СМS 1C-Битрикс. Но он побит на несколько файлов (по умолчанию 100 мегабайт) и валидно tar открывает только первый том, последующие просто не понимает формат файла. Я покажу простой способ как востановить такой архив. Вариантов создания архивов несколько, так и решений по их склейке.

По умолчанию Битрикс создает tar архив и просто режет его на несколько файлов не создавая заголовки в каждом из них, он просто физически разрезан на несколько. Все что нам по идее остается зная это, просто склеить все файлы в 1, и для этого хорошо подойдет cat .

Но это только если вы поставили галочку "Отключить компрессию архива (снижение нагрузки на процессор):" С компрессией создаетя уже не tar а tar.gz


Читаем содержимое всех файлов и сразу распаковываем

cat *$(ls -v  *tar.*) | tar xf -

Читаем содержимое всех файлов и сразу распаковываем  сжатые файлы

cat *$(ls -v  *tar.gz*) | tar xzf -
cat - читает содержимое
*$ - все переменные
ls -v  - обязательный атрибут( сортирует их не по названию файлов а по цифрам в файлах и строит последовательность не по названию в котором есть цифры архивов (1,100,2) а (1,2,100) 
(пример сортировки по имени)


tar xzf - - передаем все данные тару и распаковываем их в потоке.

Просто получить архив 1 файлом

Ну и на последок если вам не нужно его распаковывать а просто получить архив.

cat $(ls -v  *tar.*) > backup.tar
Для сжатых :
cat *$(ls -v  *tar.gz*) > backup.tar.gz 



Распаковка архива enc.gz

Остается еще один неучтенный вариант, когда вы поставили пароль на архив.
В таком случае это .enc.gz файлы и это архив сделанный битриксом, распаковать его можно исключительно http://www.1c-bitrix.ru/download/scripts/restore.php

Так-же, иногда наблюдались "глюки" с распаковкой когда версия restore.php отличалась от версии сайта.
В таком случае скачайте файл подходящий для распаковки с самого проекта, находится он тут: 

bitrix/modules/main/admin/restore.php



Оставить комментарий