Бывает необходимо извлечь из бэкапа 1C-Битрикс несколько файлов, но он разбит на множество томов (по 100 мегабайт) и просто так его не открыть. И все же решение есть.
При создании бэкапа 1C-Битрикс создает архив tar или tar.gz (если используется сжатие) и режет на несколько файлов. Его можно восстановить склеив все части архива с помощью утилиты cat.
Для не сжатых архивов:
cat $(ls -v *tar.*) > backup.tar
Для сжатых архивов:
cat *$(ls -v *tar.gz*) > backup.tar.gz
В папке с бэкапами могут лежать несколько архивов. Поэтому прежде чем выполнять указанную команду, либо перенесите нужный архив в отельную папку и распакуйте его там, либо скорректируйте маску *tar.* или *tar.gz* под название вашего архива.
Склеить архив и сразу распаковать (для не сжатых архивов):
cat *$(ls -v *tar.*) | tar xf -
Склеить архив и распаковать (для сжатых архивов):
cat *$(ls -v *tar.gz*) | tar xzf -
Однако данный способ не сработает для зашифрованных архивов, если на бэкап был установлен пароль. В таком случае файлы будут иметь расширение .enc.gz, а распаковать его можно будет только средствами самого 1C-Битрикс через restore.php.
На этом всё. Но вы можете поддержать проект. Даже небольшая сумма поможет нам писать больше полезных статей.
Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.
Зачастую нам нужно достать несколько файлов с архива созданных СМS 1C-Битрикс, или попытаться востановить сайт если это не получается сделать стандартными средствами Битрикс. По сути Битрикс создает резервную копию разбитую на несколько файлов, по умолчанию каждый весит 100 мегабайт и валидно tar
открывает только первый том, последующие просто не понимает формат файла. Я покажу простой способ как восстановить такой архив. Вариантов создания архивов несколько, так и решений по их склейке.
По умолчанию Битрикс создает tar
архив и просто режет его на несколько файлов не создавая заголовки в каждом из них, он просто физически разрезан на несколько. Все что нам остается сделать зная это, склеить все файлы в 1.
Не забудьте что в папке могут лежать архивы сразу нескольких версий бэкапа, для запуска вам нужно скопировать только 1 копию архива! Определить какие файлы к чему относятся достаточно легко. У каждого архива есть рандомная часть текста, которая у каждой версии одинаковая.
Распаковка архива enc.gz
Если при создании архива поставили пароль через админку файлы будут иметь расширение .enc.gz
, распаковать его можно исключительно файлом restore.php
.
Иногда в моей практике наблюдались глюки с распаковкой, когда версия restore.php
отличалась от версии сайта. В таком случае скачайте файл подходящий для распаковки вашего сайта с самого проекта, находится он тут:
bitrix/modules/main/admin/restore.php
Распаковка в Linux
cat
читает содержимое*$
все переменныеls -v
обязательный атрибут, сортирует не по названию файлов а по цифрам в файлах и строит последовательностьtar xzf
передаем все данные тару и распаковываем их в потоке
Распоковываем в файлы
Читаем содержимое всех файлов и сразу распаковываем:
cat *$(ls -v *tar.*) | tar xf -
Читаем содержимое всех файлов и сразу распаковываем сжатые файлы:
cat *$(ls -v *tar.gz*) | tar xzf -
Распоковываем в архив
Читаем содержимое файлов и распаковываем в архив:
cat $(ls -v *tar.*) > backup.tar
Читаем содержимое сжатых файлов и распаковываем в архив:
cat *$(ls -v *tar.gz*) > backup.tar.gz
Распаковка в Windows
Для массового переиминования файлов лучше всего воспользоваться Total Commander:
- Выделите нужные файлы
- Выберите в меню
Файл
Групповое переименование файлов
- Задайте параметры переименования
Чтобы распаковать резервную копию на windows нужно:
Изменить расширение первой части архива:
.tar.gz на .tar.gz.001
Разрешение всех остальных томов gzip
архива переименовать следующим образом:
.tar.gz.1 на .tar.gz.002
.tar.gz.2 на .tar.gz.003
Выделить все части архива и запустить распаковку через архиватор 7-zip
, после распаковки получится новый tar
архив одним файлом:
Запустить распаковку tar
архива архиватором 7-zip
, на этом процесс распаковки многотомного gzip
архива резервной копии завершен:
Пользователь 258869 Постоянный посетитель Сообщений: 336 |
Здравствуйте. Есть многотомный архив битрикса большого размера. Мне нужно вытащить всего один файл. Есть доступ к консоли. Как это можно сделать, не распаковывая весь архив? Если кто знает, дайте, пожалуйста, рабочее решение, не пересылая на какие-либо маны, я не знаток линукса. |
Пользователь 258869 Постоянный посетитель Сообщений: 336 |
ТП посоветовала с помощью restore.php, я, в общем-то тоже склонялся к этой возможности, да только разворачивание под это дела отдельного домена что-то не понравилось. Поэтому ввиду того, что было достаточно свободного места и доступ к ssh сделал сначала склеивание всех частей архива cat, затем воспользовался tar. По хорошему нужно сразу вытащить нужные файлы из архива, да только не осилил это, пробовал tar -xzf archive.tar.gz /local/templates/desktop/templates_style.css, но результат отрицательный и выдал ошибку. Поэтому пошел по делитанскому пути и распаковал весь архив:) |
Пользователь 265201 Эксперт Сообщений: 1340 |
аналогично также вытаскивал недавно файлик из 6гб бэкапа!! |
Пользователь 258869 Постоянный посетитель Сообщений: 336 |
А если архив многотомный, то так не получится, т.к. откроется только первый, разве нет? |
Пользователь 57829 Гуру Сообщений: 3754 |
#6 1 30.12.2015 21:18:23 Если архив закодированный, то никак, если нет, то лепите все тома в один файл и вытаскиваете чем удобнее, например тем же tarом в винде можно сделать так
в linux через cp Карточка партнера Наш сайт |
||
Пользователь 258869 Постоянный посетитель Сообщений: 336 |
#7 0 30.12.2015 21:28:04 Спасибо Денис за коммент, я сделал аналогичным образом (указал выше), но вот интересно как вы поступаете, если архив битый, у меня уже два раза было, распаковка ломалась на файлах из upload картинок инфоблока и пробывал через restore.php, но он далеко не всегда позволяет пропустить возникшую ошибку при распаковке, один раз обратился к ТП битрикса, помогли, но как они сделали хз. Мой сайт http://infogold.ru |
-
#2
При создании резервной копии bitrix разбивает архив на несколько частей , размер каждой части задается в параметрах резервного копирования, по умолчанию — этого 100 МБ.
Чтобы распаковать резервную копию bitrix на windows нужно:
- Изменить расширение первой части архива
.tar.gz на .tar.gz.001
Разрешение всех остальных томов gzip архива переименовать следующим образом:
.tar.gz.1 на .tar.gz.002
.tar.gz.2 на .tar.gz.003
и т.д.- Выделить все части архива и запустить распаковку через архиватор 7-zip, после распаковки получится новый tar архив одним файлом.
- Запустить распаковку tar архива архиватором 7-zip, после распаковки получится папка с резервной копии сайта.
*Для быстрого переименования можно воспользоваться Total Commander или Unreal Commander через «Групповое переименование»
Использую 7zip архиватор на Windows 10 ~1600.
Проблем с распаковкой .tar.gz.1 не испытывал.
Может этот пост актуален для WinRar или стандартного архиватора Windows?
-
#3
Использую 7zip архиватор на Windows 10 ~1600.
Проблем с распаковкой .tar.gz.1 не испытывал.
Может этот пост актуален для WinRar или стандартного архиватора Windows?
Раньше не выходило, может у меня старый 7zip стоял… протестирую, а так я всегда этим способом пользовался
-
#4
Раньше не выходило, может у меня старый 7zip стоял… протестирую, а так я всегда этим способом пользовался
![]()
who
Продвинутый (IV)
-
#5
Странная ситуация зачем вообще распаковывать бекап на win машине — не совсем понятно, 7zip’ом пользуюсь лет 5 точно проблем с распаковкой архивов проблем никогда небыло, в том числе состоящие из нескольких частей.
-
#6
Странная ситуация зачем вообще распаковывать бекап на win машине — не совсем понятно, 7zip’ом пользуюсь лет 5 точно проблем с распаковкой архивов проблем никогда небыло, в том числе состоящие из нескольких частей.
Разные ситуации бывают…
Использую 7zip архиватор на Windows 10 ~1600.
Проблем с распаковкой .tar.gz.1 не испытывал.
Может этот пост актуален для WinRar или стандартного архиватора Windows?
Решил проверить, может за уже за долгое время чтото изменилось…
В итоге 7zip у меня поновее.
Сделал бекап, качнул на комп, через выделение всех файлов и потом отдельно tar.gz выбрал распаковку, в первом случае при распаковке частей .tar.gz.1 и тд. просило замену файла для каждой новой части (так как в томах идет одно название), во втором случае распаковывалась одна часть (100мб)
Делаю скриншот настойки для быстрого переименования в Total Commander, после переименования и распаковки многотомный архив чудесно распаковался как нужно
Зачастую нам нужно достать несколько файлов с архива созданных СМS 1C-Битрикс. Но он побит на несколько файлов (по умолчанию 100 мегабайт) и валидно tar открывает только первый том, последующие просто не понимает формат файла. Я покажу простой способ как восстановить такой архив. Вариантов создания архивов несколько, так и решений по их склейке.
По умолчанию 1C-Битрикс создает 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
Важно! Не забудьте что в папке могут лежать архивы сразу нескольких версий бэкапа, и для запуска вам нужно скопировать только 1 копию архива или указать вместо *tar.* более детальную информацию по файлам! Определить какие файлы к чему относятся достаточно легко. У каждого архива есть рандомная часть текста, и она у каждой версии одинаковая.
Распаковка архива enc.gz
Остается еще один неучтенный вариант, когда вы поставили пароль на архив.
В таком случае это .enc.gz файлы и это архив сделанный битриксом, распаковать его можно исключительно http://www.1c-bitrix.ru/download/scripts/restore.php
Так-же, иногда наблюдались «глюки» с распаковкой когда версия restore.php отличалась от версии сайта. В таком случае скачайте файл подходящий для распаковки с самого проекта, находится он тут:
bitrix/modules/main/admin/restore.php