Linux 7za параметры командной строки

Архивирование и 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 пропускает строки, содержащие непечатные символы;

Читайте также:  Сколько длится диагностика компьютера windows

/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 наряду с обычными параметрами позволит использовать данный инструмент максимально продуктивно. Но мы еще не до конца разобрались с параметрами — некоторые из них будут обсуждаться во второй статье серии.

Источник

Читайте также:  Как включить dep windows
Оцените статью