- Архивирование и backup с 7z
- Пример
- Описание ключей команды 7z
- Описание основных команд
- Описание ключей
- Исключение файлов и папок
- Первый — создать список исключений в отдельном файле.
- Полезные параметры архиватора 7zip — часть 1
- Включение в архив отдельных файлов
- Исключение отдельных файлов из рассмотрения архиватором
- Защита архива с помощью пароля
- Установка целевой директории
- Создание многотомных архивов
- Установка степени сжатия
- Вывод технической информации об архиве
- Указание типа создаваемого архива
- Заключение
Архивирование и backup с 7z
Разные есть подходы к решению задач. Программки бывают громоздкими и стоящими денег. какие то это оправданно стоят а какие то нет.
Поэтому командная строка может элегантно помочь выйти из ситуации в совокупности с утилитой…
взял с https://habrahabr.ru/post/72636/ + https://www.dmosk.ru/miniinstruktions.php?mini=7zip-cmd
Пример
1)После непродолжительного курения манов комманда приняла следующий вид:
7za.exe a -tzip -ssw -mx7 -r0 -x@exclusions.txt full_path_for_the_archive working_dir
Поподробней об использованных ключах:
-tzip формат архива установлен в zip, без этого ключа умолчальный формат 7z;
-ssw принудительная упаковка файлов, которые в данный момент открыты для записи (мало ли кто-то засиделся на работе и что-то там правит);
-mx7 высокая степень сжатия (7), можно поставить и 5 (нормальное сжатие), тогда процесс пойдет побыстрее;
-r0 (это ноль, а не буква О) исключения, которые будут прописаны дальше обрабатываются только в рабочем каталоге;
-x@exclusions.txt это собственно говоря файл со списком исключений, которые не будем архивировать. Каждая строка файла — новое исключение. Можно использовать маски типа *.ext и т.п. Если исключение не много, то можно обойтись и без файла, в таком случае ключ примет следующий вид: -x!*.ext;
full_path_for_the_archive это соответственно путь и имя нового архива;
working_dir это папка, которая подлежит упаковке.
Для пущего удобства можно использовать в имени архива %date%.
В связи с тем, что архивировать нужно разные папки в разные архивы, объемами 10-15 гигов, то резонно использовать последовательность команд, дабы не создавать кучу правил в планировщике и не думать сколько времени займет весь этот процесс. Соответственно для этих целей использую объединение команд с помощью &&. Если использовать &, то все команды будут выполняться одновременно, что меня никак не устраивает, с && — последовательно при удачном завершении предыдущей команды.
Помимо всего прочего желательно иметь логи, чтоб быть в курсе, а не случилось ли чего. Это можно легко реализовать с помощью инструкции ‘>>’, которая сохраняет вывод в консоль в текстовый файл. Однако проблема в том, что 7zip вываливает в консоль кучу информации, в том числе и об архивации каждого нового файла. Очевидно, что на объемах в несколько тысяч файлов вся эта инфа в логах нужна как мертвому припарок. Соответственно требуется исключить все ненужные строки, оставив те, где есть информация о названии создаваемого архива, результат архивации и информацию об ошибках, коли таковые появятся.
Тут на помощь приходит команда FINDSTR. В моем случае она принимает следующий вид:
findstr /P /I /V «Compressing 7-Zip»
Сначала пара слов об использованных ключах:
/P пропускает строки, содержащие непечатные символы;
/I на всякий случай игнорирую регистр букв;
/V » « непосредственно перечень слов для поиска в строках и последующего исключения этих строк.
В итоге на выходе этой команды имеем 3 строки:
Creating archive archive_name
Everything is Ok
А потом закатываю все в текстовый файл, для последующего изучения:
findstr /P /I /V «Compressing 7-Zip» >> log_file
Теперь дело за малым. Нужно зафутболить все три блока в одну последовательность команд:
7za.exe a -tzip -ssw -mx7 -r0 -x@exclusions.txt full_path_for_the_archive working_dir | findstr /P /I /V «Compressing 7-Zip» >> log_file.%date%.txt
set source=»C:\Date»
set destination=»C:\Temp»
set passwd=»Password»
set dd=%DATE:
3,2%
set yyyy=%DATE:
6,4%
set curdate=%dd%-%mm%-%yyyy%
«C:\Program Files\7-Zip\7z.exe» a -tzip -ssw -mx1 -p%passwd% -r0 %destination%\backup_%curdate%.zip %source% >> backup_log.%date%.txt
Описание ключей команды 7z
Описание основных команд
Команда | Описание |
---|---|
a | Добавление файлов в архив. Если архивного файла не существует, создает его. |
d | Удаление файла из архива |
e | Извлечение файлов из архива. Все файлы оказываются в одной папке. |
l | Вывод содержимого архива. |
rn | Переименовывание файла внутри архива. |
u | Обновление файлов в архиве. Если файла нет, создает новый. |
x | Извлечение файлов из архива. Пути сохраняются. |
Описание ключей
Ключ | Описание |
---|---|
-t | Тип архива. По умолчанию создаются файлы в формате 7z. Примеры, -tzip, -tgz |
-ssw | Включить файл в архив, даже если он в данный момент используется. Для резервного копирования очень полезный ключ. |
-mx | Уровень компрессии. 0 — без компрессии (быстро), 9 — самая большая компрессия (медленно). |
-p | Пароль для архива. |
Другие полезные ключи:
Ключ | Описание |
---|---|
-o | Задает директорию, например, в которую будут распакованы файлы. |
-sdel | Удалить файлы после создания архива. |
-sfx | Создание самораспаковывающегося sfx-архива. |
-y | Утвердительно ответить на все вопросы, которые может запросить система. |
-x | Исключить файлы или папки из архива. |
Полный список ключей и команд можно получить командой 7z —help.
Исключение файлов и папок
Отдельно стоит рассказать про возможность исключения. Есть два варианта ее применения.
Первый — создать список исключений в отдельном файле.
Пример команды 7z:
7z.exe a -tzip -ssw -mx9 -r0 -x@exclus.txt C:\Temp\backup.zip C:\Data
* где exclus.txt — файл с исключениями.
Пример файла с исключениями:
* в данном примере мы исключаем каталог с именем test и все файлы с расширением tmp.
Источник
Полезные параметры архиватора 7zip — часть 1
Оригинал: Understanding 7z command switches — part I
Автор: Himanshu Arora
Дата публикации: 6 марта 2017 г.
Перевод: А.Панин
Дата перевода: 6 апреля 2017 г.
7zip, без сомнения, является функциональным и мощным архиватором (по словам разработчиков, позволяющим достичь максимальной степени сжатия данных). На данном ресурсе уже была опубликована статья с описанием процесса его установки и использования. Но в ней обсуждались лишь базовые возможности архиватора, доступные в результате использования «параметров-букв».
В этой же статье мы постараемся рассмотреть дополнительные функции данного инструмента, доступные в результате использования классических параметров командной строки. Но перед тем, как перейти непосредственно к рассмотрению этих функций, следует упомянуть о том, что все инструкции и команды, упомянутые в статье, были протестированы в системе Ubuntu 16.04 LTS.
Примечание: в ходе выполнения различных операций с помощью архиватора 7zip будут использоваться файлы с именами, приведенными на расположенной ниже иллюстрации.
Включение в архив отдельных файлов
Архиватор 7zip позволяет включать в архивы отдельные файлы. Для использования этой возможности предназначен параметр -i .
Например, если вам нужно включить в архив лишь файлы с расширением .txt , вы можете воспользоваться следующей командой:
Теперь вы можете воспользоваться следующей командой для того, чтобы убедиться в наличии в созданном архиве лишь файлов с расширением .txt :
Из вывода очевидно, что в архив был добавлен лишь файл с именем testfile.txt .
Исключение отдельных файлов из рассмотрения архиватором
Если вам понадобится, вы можете исключить из рассмотрения архиватором файлы, которые вас не интересуют. Для этой цели предназначен параметр -x :
Например, если вам нужно исключить из рассмотрения архиватором файл с именем abc.7z в процессе создания нового архива, вы можете воспользоваться следующей командой:
А это вывод данной команды:
Для того, чтобы убедиться в отсутствии в созданном архиве файла с именем abc.7z вы можете воспользоваться следующей командой:
Из вывода очевидно, что файл с именем abc.7z был исключен из нового архива.
Совет: предположим, что вам нужно исключить из рассмотрения архиватором все файлы с расширением .7z с именами, начинающимися с буквы t и, в то же время, добавить в архив все файлы с расширением .7z с именами, начинающимися с буквы a . Эта задача может быть решена путем совместного использования параметров -i и -x аналогичным образом:
Защита архива с помощью пароля
7zip также позволяет защитить ваш архив с помощью пароля. Для этого может использоваться параметр -p .
Примечание: параметр -mhe активирует ( on ) или деактивирует ( off ) механизм шифрования заголовка архива (который отключен по умолчанию).
Думаю, очевидно, что при извлечении файлов из защищенного с помощью пароля архива архиватор попросит вас ввести пароль. Для извлечения файлов из защищенного подобным образом архива следует использовать «параметр-букву» e . А это пример команды для извлечения файлов из такого архива:
Установка целевой директории
Архиватор позволяет вам извлекать файлы из архива в любую удобную директорию. Для этой цели используется параметр -o . Думаю, не стоит напоминать о том, что он будет работать лишь в случае использования «буквы-параметра» e или x .
Предположим, к примеру, что вы выполнили следующую команду в текущей директории:
При этом значение параметра -o говорит о том, что файлы из архива будут размещены в директории ./how/to/forge .
На основе содержимого приведенной выше иллюстрации несложно сделать вывод о том, что из архива были извлечены все файлы. Но куда они были извлечены? Для того, чтобы убедиться в наличии извлеченных файлов в директории ./how/to/forge может использоваться команда ls -R .
Содержимое приведенной выше иллюстрации говорит о том, что все файлы из архива output.7z были действительно извлечены в директорию ./how/to/forge .
Создание многотомных архивов
С помощью архиватора 7zip могут создаваться, в том числе, многотомные архивы (состоящие из небольших по размеру файлов-подархивов). Это очень полезная возможность, позволяющая передавать файлы большого объема по сети или размещать их на нескольких флеш-накопителях с интерфейсом USB. Для использования этой возможности предусмотрен параметр -v . При работе с упомянутым параметром необходимо указывать размер подархивов.
Вы можете указывать размер подархивов в байтах ( b ), килобайтах ( k ), мегабайтах ( m ) и гигабайтах ( g ).
Давайте попробуем разобраться с данной командой с помощью примера. Учтите, что мы будем использовать новую директорию для выполнения операций с задействованием параметра -v .
Это содержимое данной директории:
Теперь мы можем выполнить следующую команду для создания многотомного архива (с подархивами размером в 100 байт каждый):
Для ознакомления со списком созданных подархивов может использоваться команда ls :
Как очевидно из приведенной выше иллюстрации, было создано четыре тома — volume.7z.001 , volume.7z.002 , volume.7z.003 , volume.7z.004 .
Примечание: вы можете извлечь файлы, открыв файл архива с расширением .7z.001 . Но, для корректной распаковки архива все остальные подархивы также должны присутствовать в текущей директории.
Установка степени сжатия
7zip позволяет пользователям задавать степень сжатия их архивов. Данная функция доступна посредством параметра -m . 7zip поддерживает ограниченный номенклатуру степеней сжатия, а именно, степени -mx0 , -mx1 , -mx3 , -mx5 , -mx7 и -mx9 .
Это краткое описание упомянутых степеней сжатия:
- -mx0 — Вообще без сжатия — содержимое файлов просто копируется в архив.
- -mx1 — Минимальные временные затраты с минимальным коэффициентом сжатия данных.
- -mx3 — Лучший коэффициент сжатия данных, чем при использовании -mx1 .
- -mx5 — Используется по умолчанию (средний коэффициент сжатия данных).
- -mx7 — Максимальный коэффициент сжатия данных.
- -mx9 — Ультравысокий коэффициент сжатия данных.
Примечание: для ознакомления с более подробными описаниями упомянутых степеней сжатия рекомендую обратиться к данной странице .
Например, в определенной директории имеется набор файлов и директорий, которые мы пытаемся сжимать с различными степенями сжатия. Чтобы вам было понятнее, это команда для создания архива со степенью сжатия 0 :
По аналогии были исполнены команды для остальных степеней сжатия.
А это список созданных файлов архивов (сгенерированный средствами команды ls ), причем в именах файлов содержится информация об использованных степенях сжатия, а в пятом столбце таблицы их результирующие размеры.
Вывод технической информации об архиве
При необходимости 7zip может выводить с помощью стандартного потока вывода техническую информацию об архиве — его тип, физический размер, размер заголовка и так далее. Для доступа к данной возможности предназначен параметр -slt . Данный параметр работает лишь в случае использования «параметра-буквы» l .
Указание типа создаваемого архива
Если вам нужно создать архив определенного типа вместо архива 7zip (создаваемого по умолчанию), вы можете указать желаемый тип архива с помощью параметра t :
В следующем примере показана процедура создания обычного zip-архива:
В результате будет создан файл howtoforge.zip . Для того, чтобы убедиться в корректности типа созданного архива можно воспользоваться командой file :
Да, файл howtoforge.zip действительно является zip-архивом. Вы можете создавать архивы других поддерживаемых 7zip типов аналогичным образом.
Заключение
Вы наверняка согласитесь с тем, что знание «букв-параметров» 7zip наряду с обычными параметрами позволит использовать данный инструмент максимально продуктивно. Но мы еще не до конца разобрались с параметрами — некоторые из них будут обсуждаться во второй статье серии.
Источник