- Многотомный архив tar 7zip
- Использование tar в Linux и FreeBSD для работы с архивами
- Создание и распаковка архивов
- Создать
- Распаковать
- Примеры
- Распаковать в определенную папку
- Распаковка без вложенной папки
- Исключение файлов по маске
- Работа с архивами, разбитыми на части
- Описание ключей tar
- Команды для действия
- Дополнительные опции
- Windows
- Linux tar многотомные архивы
- Linux tar многотомные архивы
Многотомный архив tar 7zip
У каждого есть свой способ делать бекапы и архивы. У меня тоже есть свой 🙂
Неоднократно сталкивался с ситуациями, когда архив tar.gz, созданный в Linux (tar -czvf) , нормально в Linux открывающийся, в Windows либо не открывался либо все время говорил об ошибках конца архива и прочее. А я хотел, чтобы архивы сервера можно было бы спокойно просматривать на Windows. В итоге родился вариант: tar | 7za. Почему не просто tar? Мне не поддался tar в плане multi-volume (точнее, я не очень-то и хотел), да и не сжимает он все же сам. А почему тогда не просто 7za? А потому, что в man 7za белым по черному написано, что 7za не сохраняет прав доступа и владельцев файлов. Поэтому сначала tar, потом 7zip.
Ставим 7zip в CentOS:
# yum install p7zip
Задача: создать многотомный архив (например, по 100 Мб) какой-либо папки на сервере.
tar cf — /var/www | 7za u -si -t7z -mx=5 -v100m backup.7z
Tar готовит архивы, передает из по конвейеру 7zip-у (обратите внимание, в Linux 7zip запускается командой 7za), который:
u — update (варианты a — add, d — delete, e — extract, l — list, t — test, x — extract with full path)
-si — читает StdIn от tar.
-t7z — создает архив в формате 7zip.
-mx5 — степень сжатия (от 0 до 9). 0 — без сжатия, зато очень быстро. Например, с -mx0 архив получился 546 Мб, с -mx5 — 251 Мб, а с -mx2 — 285 Мб.
-v100m — тома по 100 Мб.
Имя архива: backup.7z. Если томов архива будет несколько, они будут называться backup.7z.001, backup.7z. 002, backup.7z.00 3 и т.д.
7za поддерживает пароли на архивы (-pYOUR_PAWWD), шифрует список файлов архива от просмотра и др. Я этим не балуюсь, но вам может оказаться полезным.
Помните шутку про бедуинов, которые, когда их спрашивают, сколько стоит покататься на верблюде, отвечают — бесплатно! Но вот «за слезть на землю» могут попросить денег. Так и сейчас, запаковать-то мы запаковали, а как извлечь данные из архива?
Распаковать архив 7zip можно так:
7za x backup.7z.001
tar tf имя_распакованного_архива
Или одной командой:
7za x -so backup.7z.001 | tar xf —
где -so указывает 7zip отправить вывод на StdOut, где его поймает tar и распакует в текущую директорию.
Источник
Использование tar в Linux и FreeBSD для работы с архивами
Утилита командной строки tar используется для работы с архивами в операционных системах на базе UNIX. С ее помощью можно архивировать данные и оптимизировать использование дискового пространства.
Создание и распаковка архивов
Создать
Создание выполняется с ключом c. Синтаксис следующий:
tar -czvf archive.tar.gz /home/dmosk
* в данном примере будет создан архив archive.tar.gz домашней директории пользователя (/home/dmosk)
** где z — сжать архив в gzip (без этого параметра, tar не сжимает, а создает так называемый тарбол); c — ключ на создание архива; v — verbose режим, то есть с выводом на экран процесса (очень удобно для наблюдением за ходом работы, но в скриптах можно упустить); f — использовать файл (обязательно указываем, так как в большей степени работаем именно с файлами).
Распаковать
Распаковка выполняется с ключом x с синтаксисом:
tar -xvf archive.tar.gz
Примеры
Распаковка .gz файла:
tar -xvf archive.tar.gz
* при возникновении ошибки This does not look like a tar archive, можно воспользоваться командой gzip -d archive.tar.gz.
tar -xvjf archive.tar.bz2
* ключ j отвечает за работу с bz2.
Если система ругается на bzip2, значит нужно его установить:
yum install bzip2
apt-get install bzip2
pkg install bzip2
* соответственно, для CentOS (RPM based), Ubuntu (deb based), FreeBSD (BSD based).
Если видим ошибку tar: Unrecognized archive format, воспользуемся следующей командой:
bzip2 -d archive.tar.bz2
tar -xvzf archive.tar.gzip
* ключ z отвечает за работу с gzip.
Распаковывается, как gzip:
tar -xvzf archive.tgz
Распаковать в определенную папку
tar -C /home/user -xvf archive.tar.gz
* ключ -C используется для указания папки, куда необходимо распаковать файлы из архива.
Распаковка без вложенной папки
Такой способ можно использовать для распаковки в заранее подготовленный каталог. Будет некий эффект переименовывания каталога или аналог «Распаковать здесь»:
tar -C /home/admin/mytar -xvf admin.tar.gz —strip-components 1
* каталог /home/admin/mytar заранее должен быть создан; —strip-components 1 пропустит одну вложенную папку внутри архива.
Исключение файлов по маске
Если необходимо пропустить некоторые файлы, вводим команду с ключом —exclude:
tar —exclude=’sess_*’ -czvf archive.tar.gz /wwwsite
* в данном примере мы создадим архив archive.tar.gz, в котором не будет файлов, начинающихся на sess_.
Также можно исключить несколько файлов или папок, добавляя несколько опций exclude:
tar —exclude=’/data/recycle’ —exclude=’*.tmp’ zcf /backup/samba/2021-08-29.tar.gz /data/
* в данном примере мы исключим папку recycle и файлы, которые заканчиваются на .tmp
Работа с архивами, разбитыми на части
Разбить архив на части может понадобиться по разным причинам — нехватка места на носителе, необходимость отправки файлов по почте и так далее.
Чтобы создать архив, разбитый на части, вводим команду:
tar -zcvf — /root | split -b 100M — root_home.tar.gz
* данная команда создаст архив каталога /root и разобьет его на части по 100 Мб.
В итоге мы получим, примерно, такую картину:
root_home.tar.gzaa root_home.tar.gzac root_home.tar.gzae
root_home.tar.gzag root_home.tar.gzai root_home.tar.gzab
root_home.tar.gzad root_home.tar.gzaf root_home.tar.gzah
Чтобы собрать архив и восстановить его, вводим команду:
cat root_home.tar.gz* | tar -zxv
Описание ключей tar
Команды для действия
Ключ | Описание |
---|---|
-A | Добавление файлов в архив. |
-c | Создание нового архивного файла. |
-d | Показать отличающиеся данные между каталогом-исходником и содержимым архива. |
—delete | Удалить файлы внутри архива. |
-r | Добавить файлы в конец архива. |
-t | Показать содержимое архива. |
-u | Добавить файлы, которых нет в архиве. |
-x | Извлечь файлы из архива. |
* нельзя использовать несколько вышеперечисленных ключей в одной команде.
Дополнительные опции
Ключ | Описание |
---|---|
—atime-preserve | Оставить прежнюю метку времени доступа для файла. |
-b N | Задать размер блока N x 512. |
-C | Смена каталога. По умолчанию, используется тот, в котором мы находимся. |
—checkpoint | Показать имена папок при чтении архивного файла. |
-G | Использование старого формата инкрементального резервирования при отображении или извлечения. |
-g | Использование нового формата инкрементального резервирования при отображении или извлечения. |
-h | Не дублировать символьные ссылки. Только файлы, на которые указывают эти симлинки. |
-i | Игнорировать блоки нулей. |
-j | Использование bzip2. |
—ignore-failed-read | Игнорировать не читаемые файлы. |
-k | При распаковке, существующие файлы не заменяются соответствующими файлами из архива. |
-L N | Смена магнитной ленты после N*1024 байт. |
-m | При извлечении игнорировать время модификации объекта. |
-M | Многотомные архивы. |
-N DATE | Сохранять только более новые файлы относительно DATE |
-O | Направление извлекаемого на стандартный вывод. |
-p | Извлечение защищенной информации. |
-P | Не отбрасывает начальный слэш (/) из имен. |
-s | Сортировка файлов при извлечении. |
—preserve | Аналогично -ps |
—remove-files | Удалить исходные файлы после добавления в архив. |
—same-owner | Сохранить владельца при извлечении. |
—totals | Вывод байт при создании архива. |
-v | Протоколирование действий — отображение списка объектов, над которыми происходит действие. |
-V NAME | Создание архива на томе с меткой NAME. |
—version | Показать версию tar. |
-w | Требовать подтверждения для каждого действия. |
-W | Проверка архива после записи. |
—exclude FILE | Исключить файл FILE. |
-X FILE | Исключить файлы FILE. |
-Z | Фильтрует архив с помощью compress. |
-z | Использование gzip. |
* актуальный список опций можно получить командой man tar.
Tar не работает с zip-архивами. В системах UNIX для этого используем утилиты zip и unzip. Для начала, ставим нужные пакеты:
yum install zip unzip
apt-get install zip unzip
pkg install zip unzip
* соответственно, для RPM based, deb based, BSD based.
zip -r archive.zip /home/dmosk
* создает архив каталога /home/dmosk в файл archive.zip.
Windows
В системе на базе Windows встроенными средствами можно распаковать только ZIP-архивы. Для работы с разными архивами рекомендуется поставить архиватор, например 7-Zip.
Источник
Linux tar многотомные архивы
-A, —catenate, —concatenate
склеить файлы tar в один архив
-c, —create
создать новый архив
-d, —diff, —compare
найти различия между архивом и файловой системой
—delete
удалить из архива (не применяется к магнитным лентам!)
-r, —append
добавить файлы в конец архива
-t, —list
показать содержимое архива
-u, —update
добавить только новые версии файлов файлов
-x, —extract, —get
извлечь файлы из архива
-j, —bzip2
используется для создания/распаковки .bz2 файлов
-z, —gzip, —ungzip
используется для создания/распаковки .gz файлов
-M, —multi-volume
создать/показать/распаковать многотомный архив
Другие не менее интересные опции этой очень важной команды можно найти в руководстве пользователя — man tar.
(«-» после -czvf говорит tar’у выводить в stdout, чтобы потом split мог его разбить на части(а «-» в split говорит ему брать из stdin)) В результате будут созданы файлы backup.tar.gzaa, backup.tar.gzab, backup.tar.gzac . размер каждого 1024 Мб. Именно последние две буквы в названии архива .tar.gzaa, .tar.gzab и т.д., указывают на то, что он разбит на части.
Склеить все части можно командой
в результате будут созданы файлы arch.7z.001 arch.7z.002 arch.7z.003 . размер каждого 100 Мб (опция -v100m).
Чтобы распаковать многотомный архив arch.7z.001, достаточно поместить все части архива в текущую папку и дать команду
между вашим паролем и ключем -p не должно быть пробелов, в кавычки надо брать если в пароле используется например дефис или другой системный символ
создание и распаковка архива с паролем через 7zip
Источник
Linux tar многотомные архивы
ОСь: Redhat
есть файлы объемом 50гб. Хотел создать многотомный архив где каждый том размером 700мб
tar czfM test.tar.gz *.*
Сжатый многотомный архив не создается, выходит сообщение что не может создать многотомный архив, а очень нужно. Прошу ваших советов.
Оглавление |
|
Сообщения по теме | [Сортировка по времени | RSS] |
1. «Создание многотомного архива» | + / – | |
Сообщение от shadow_alone (ok) on 28-Окт-11, 10:11 | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
2. «Создание многотомного архива» | + / – | |
Сообщение от XAnder (ok) on 28-Окт-11, 10:48 | ||
Будут файлы типа test.tar.gz.aa, test.tar.gz.ab и т. д. cat test.tar.gz.* | tar xz Пишу по памяти, так что проверяйте по man tar/split | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
3. «Создание многотомного архива» | + / – | |
Сообщение от worsvch (??) on 28-Окт-11, 15:59 | ||
| ||
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору |
4 . «Создание многотомного архива» | + / – | |
Сообщение от омоним on 31-Окт-11, 12:44 | ||
Это конечно решает исходную задачу, но достать отдельный файлик из 50Gb архива будет аццки долго | ||
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору |
5 . «Создание многотомного архива» | + / – | |
Сообщение от Andrey Mitrofanov on 31-Окт-11, 14:42 | ||
Ну по сравнению с записью 70 CD болванок по 700Мб — сущие мелочи. $))) | ||
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору |
6 . «Создание многотомного архива» | + / – | |
Сообщение от worsvch (??) on 31-Окт-11, 22:02 | ||
на диски записываться ничего не будет. | ||
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору |
7 . «Создание многотомного архива» | + / – | |
Сообщение от worsvch (??) on 31-Окт-11, 22:03 | ||
| ||
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору |
8 . «Создание многотомного архива» | + / – | |
Сообщение от омоним on 01-Ноя-11, 08:47 | ||
но если использовать только многотомные архивы тар -M, достать отдельное файло можно не дожидаясь просмотра всего архива. | ||
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору |
9 . «Создание многотомного архива» | + / – | |
Сообщение от worsvch (??) on 01-Ноя-11, 11:07 | ||
С этого мой вопрос и начался: | ||
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору |
10 . «Создание многотомного архива» | + / – | |
Сообщение от омоним on 01-Ноя-11, 11:13 | ||
Источник |