Работа с 7zip из командной строки и shell для создания backup

Что такое 7zip.

Приведенные ниже команды выполняются после перехода в каталог с установленным 7-Zip. Как правило, это:

cd «C:\Program Files\7-Zip»

Распаковать и заархивировать

Общий синтаксис:

7z <команда> <ключи> <пути к каталогам и файлам>

Распаковка

Синтаксис для распаковки:

7z <x или e> <архивный файл> -o»<путь, куда распаковываем>»

* ключ x распаковывает с сохранением каталожной структуры; e — все в одно место.

Пример:

7z x c:\temp\archive.7z -o»c:\temp\»

* в данном примере мы распакуем файл c:\temp\archive.7z в папку c:\temp

Архивация

Синтаксис для архивирования:

7z a <ключи> <архивный файл> <объект архивирования>

Примеры:

7z a -tzip -mx5 -r0 c:\temp\archive.zip c:\temp

* в данном примере мы создадим zip-архив с уровнем компрессии 5; в архив попадет все содержимое всех каталогов; название для файла c:\temp\archive.zip; запаковываем все содержимое папки c:\temp.

7z a -mx1 c:\temp\archive.7z c:\temp\file.txt

* в данном примере мы архивируем файл c:\temp\file.txt с низкой компрессией 1; в итоге будет получен архив c:\temp\archive.7z.

* описание ключей ниже.

Резервное копирование с помощью 7-Zip

Один из самых распространенных примеров использования 7zip из командной строки — резервирование данных.

Для начала переходим в каталог с установленной программой:

cd «C:\Program Files\7-Zip\»

* так как в пути имеется пробел, его необходимо писать в кавычках.

Сама команда выглядит следующим образом:

7z a -tzip -ssw -mx1 -pPassword -r0 C:\Temp\backup.zip C:\Data

* в данном примере мы архивируем содержимое папки C:\Data и сохраняем в виде файла C:\Temp\backup.zip.
* описание ключей смотрите ниже или командой 7z —help.

Полный пример cmd-скрипта для резервного копирования:

@echo off

set source="C:\Date"
set destination="C:\Temp"
set passwd="Password"
set dd=%DATE:~0,2%
set mm=%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%

 

* данный скрипт заархивирует содержимое каталога C:\Data в файл C:\Temp\backup_<текущая дата>.zip. Полученный архив будет защищен паролем Password.
* содержимое необходимо сохранить в файле с расширением .cmd или .bat.

Пример Powershell скрипта для резервного копирования:

$source = "C:\Date"
$destination = "C:\Temp"
$passwd = "Password"
$curdate = (Get-Date -UFormat "%d-%m-%Y")

& "C:\Program Files\7-Zip\7z.exe" a -tzip -ssw -mx1 -p$passwd -r0 $destination\backup_$curdate.zip $source

 

* данный скрипт также заархивирует содержимое каталога C:\Data в файл C:\Temp\backup_<текущая дата>.zip. Полученный архив будет защищен паролем Password.
* содержимое необходимо сохранить в файле с расширением .ps1.

Описание ключей и команд 7z

В синтаксисе работы с 7zip идут команды и ключи.

Описание основных команд

Команда Описание
a Добавление файлов в архив. Если архивного файла не существует, создает его.
d Удаление файла из архива
e Извлечение файлов из архива. Все файлы оказываются в одной папке.
l Вывод содержимого архива.
rn Переименовывание файла внутри архива.
u Обновление файлов в архиве. Если файла нет, создает новый.
x Извлечение файлов из архива. Пути сохраняются.

Описание ключей

Часто используемые:

Ключ Описание
-t Тип архива. По умолчанию создаются файлы в формате 7z. Примеры, -tzip, -tgz
-ssw Включить файл в архив, даже если он в данный момент используется. Для резервного копирования очень полезный ключ.
-mx Уровень компрессии. 0 — без компрессии (быстро), 9 — самая большая компрессия (медленно).
-p Пароль для архива.
-o Задает директорию, например, в которую будут распакованы файлы.
-r Рекурсивное архивирование для папок. Задается числом от 0 (все каталоги) до количества уровней каталогов, которые нужно включить в архив.

Другие полезные ключи:

Ключ Описание
-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

* в данном примере мы исключаем каталог с именем test и все файлы с расширением tmp.

Второй — указать исключение в команде.

7z.exe a -tzip -ssw -mx9 -r0 -xr!Шаблон* C:\Temp\backup.zip C:\Data

 

 

Источник: https://www.dmosk.ru/miniinstruktions.php?mini=7zip-cmd#backup-cmd

 

Автор: Электроник

Системный администратор широкого профиля. От ИТ до Маркетинга. Мастер на все руки.

Добавить комментарий

Ваш адрес email не будет опубликован.