Использование архиватора 7z для автоматического резервного копирования.

 

Столкнулся как то на работе с такой проблемкой, нужно было делать резервное копирование базы данных довольно большого объема. Сначала кинулся искать программу для этих целей. Нашел несколько. Но в силу ряда причин я остановился на использовании для этой цели бесплатного архиватора 7z. Зачем устанавливать еще какое-то ПО когда возможности установленного архиватор а прекрасно позволяют прекрасно справится с поставленной задачей?

Собственно говоря умные люди давно и успешно пользуются данной возможностью, однако не все любят разбираться в мануалах, да и со временем часто и густо бывает напряг. Поэтому я выкладываю с подробными и пошаговыми разъясненьями тот вариант который я успешно использовал в работе. Прежде всего создаем в текстовом редакторе (в блокноте)два файла. Это можно проделать в любом текстовом редакторе, (обычно в Блокноте), но если вы используете в командах пути к файлам с русскими символами необходимо задействовать редакторы, которые поддерживают DOS-кодировку (редактор менеджера FAR). Один из них будет с расширением .bat или .cmd(основной с помощью которого будет производится архивация) и второй с расширением txt (в нем будут указаны пути к файлам из которых будет браться информация для архивации).

 

Рассмотрим содержимое основного (можно просто скопировать этот кусок записи, сохранить с расширением txt, внести изменения под свою задачу и пересохранитьс расширением .bat или .cmd):

@echo off

set now=%TIME:~0,-3%

set now=%now::=.%

set now=%now: =0%

set now=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%_%now%

7z.exe a -tzip -ssw -mx7 -r0 -x!*.mdx D:\REZERV-COPY\ARH-BD_%now%.zip @listfile.txt

 

Теперь давайте подробно разберем что и для чего в этой записи, чтобы переделать данный файл под свои задачи.

Поподробней об использованных ключах архиватора (это очень хорошо расписано в мануале):

-tzip формат архива установлен в zip, без этого ключа по умолчанию формат 7z;

-ssw принудительная упаковка файлов, которые в данный момент открыты для записи (если кто то засиделся на работе и что-то там правит);

-mx7 высокая степень сжатия (7), можно поставить и 5 (нормальное сжатие), тогда процесс пойдет побыстрее;

-r0 (это ноль, а не буква О) исключения, которые будут прописаны дальше обрабатываются только в рабочем каталоге;

-xисключение которые не будем архивировать. Можно использовать маски типа *.cdx и т.п. следующий вид: -x!*.cdx; (то есть файлы с данными расширениями просто не будут паковаться в вашу резервную копию)

D:\REZERV-COPY\ARH-BD_%now%.zip-диск и путь куда будут складываться архивы (на диск Dв каталог REZERV-COPY, название архиваARH-BD_(дата и время создания))

@listfile.txt   -название текстового файла в котом прописывается какие папки и файлы будут архивироваться

(напримерзапись: C:\base_OK\base1 - будет архивироваться содержимое папки base1 из каталога base_OK)

Строки приведенные ниже добавляют к имени архива дату и время создания архива.

set now=%TIME:~0,-3%

set now=%now::=.%

setnow=%now: =0%

set now=%DATE:~-4%.%DATE:~3,2%.%DATE:~0,2%_%now%

 

Вот собственно и все, осталось только указать в диспетчерезадач путь до созданного файла с расширением .bat или .cmd и частоту его запуска. Думаю все, очень просто и не составляет не какого труда в реализации.

И одна тонкость. ВНИМАНИЕ!!! запускной файл с расширением .bat или .cmdи файл listfile.txt должны обязательно лежать в той же папке где находится архиватор!!! (В этом каталоге -C:\Program Files\7-Zip :) ).

Поиск информации