понедельник, 12 января 2015 г.

Бэкап файлов и папок одним батником с помощью 7zip

:: Каталог с бэкапами и логами.
set P="D:\Backups"
set L="C:\Scripts\Logs"
:: Формирование времени (это надо на случай, если есть необходимость формировать имя выходного архива с указанием точного времени создания,
:: например, если бэкапы делаются несколько раз в день)
set h=%TIME:~0,2%
set m=%TIME:~3,2%
set s=%TIME:~6,2%
set curtime=%h%-%m%-%s%
:: Удаление бэкапов старше 30 дней и запись отчета в лог, если подходящих по параметров файлов нет, то в лог пишется: (ERROR: No files found with the specified search criteria.).
forfiles.exe -p %P%\ -s -m *.* -d -30 -c "cmd /c del /Q @FILE" > %L%\clear_log_%date%.txt 2>&1
:: Список возможных параметров передаваемых скрипту.
if "%1"=="manager" GOTO manager
if "%1"=="sklad" GOTO sklad
if "%1"=="all" GOTO all
if "%1"=="docs" GOTO docs
:: Если скрипт был запущен без параметров, то производится очистка бэкапов старше 30 дней и выход.
echo При запуске без параметров архивация не производится, производится только очистка старых бэкапов.
exit
:: Подобные этой (echo manager_%date%_%time% >> %L%\manager_log_%date%.txt) строчки в скриптах записывают время начала и окончания бэкапа секции.
:: Это дает возможность замерить время работы сеуции, и настроить задания в планировщике так, что бы они не пересекались.
:: Помимо времени в логи пишутся только ошибки.
:: Если передать скрипту параметр manager, то срабатывает данная секция.
:manager
echo Время начала manager_%date%_%time% >> %L%\manager_log_%date%.txt
7z.exe a -t7z -m0=LZMA2:mt=2 -mx=4 %P%\manager\manager_%date%.7z -ssw C:\files\manager 2>> %L%\manager_log_%date%.txt
echo Время окончания manager_%date%_%time% >> %L%\manager_log_%date%.txt
exit
:: Если передать скрипту параметр sklad, то срабатывает данная секция.
:sklad
echo Время начала sklad_%date%_%time% >> %L%\sklad_log_%date%.txt
7z.exe a -t7z -m0=LZMA2:mt=2 -mx=4 %P%\sklad\sklad_%date%.7z -ssw C:\files\sklad 2>> %L%\sklad_log_%date%.txt
echo Время окончания sklad_%date%_%time% >> %L%\sklad_log_%date%.txt
exit
:: Если передать скрипту параметр all, то срабатывает данная секция.
:all
echo Время начала all_%date%_%time% >> %L%\all_log_%date%.txt
7z.exe a -t7z -m0=LZMA2:mt=2 -mx=4 %P%\all\all_%date%.7z -ssw C:\files\all 2>> %L%\all_log_%date%.txt
echo Время окончания all_%date%_%time% >> %L%\all_log_%date%.txt
exit
:: Если передать скрипту параметр docs, то срабатывает данная секция.
:docs
echo Время начала docs_%date%_%time% >> %L%\docs_log_%date%.txt
7z.exe a -t7z -m0=LZMA2:mt=2 -mx=4 %P%\docs\docs_%date%.7z -ssw C:\files\docs 2>> %L%\docs_log_%date%.txt
echo Время окончания docs_%date%_%time% >> %L%\docs_log_%date%.txt
exit

Источник: http://www.itroad.ru/bekap-fajlov-i-papok-odnim-batnikom-s-pomoshhyu-7zip

Комментариев нет:

Отправить комментарий