Бекап реализован следующим образом:
1. Стартует батник, в котором:
Цитата:@echo off
net use y: /delete
net use z: /delete
rem // 1 объявляем переменные
@chcp 1251
rem // что копируем
SET SIRBIS=C:\IRBIS64
rem // куда временно копируем
SET CIRBIS=C:\backup_script\date
rem // куда архивируем
SET EIRBIS=E:\BACKUP_irbis
rem // куда копируем архив
SET ZIRBIS=y:\Библиотека\3_Бекапы_ИРБИС\2015\06
set login=домен\имяадмина
set password=парольадмина
rem // 2 переходим в стартовый каталог и начинаем работу скрипта
cd %CIRBIS%
chdir %DATE%
rem // 4 запись в лог, делаем отступ
echo ****** >>%CIRBIS%\%DATE%-log.txt
echo *** НАЧАЛО ВЫПОЛНЕНИЯ РЕЗЕРВНОГО КОПИРОВАНИЯ СЕРВЕРА ИРБИС-64 >>%CIRBIS%\%DATE%-log.txt
echo ****** >>%CIRBIS%\%DATE%-log.txt
rem // 0 подключаем шару
@chcp 1251
ping -n 1 -w 100 fs > NUL
if not errorlevel 0 GOTO :fail
:NETUSE
echo %DATE% %TIME% 0001 SIRBIS ping fs - ОК >>%CIRBIS%\%DATE%-log.txt
net use y: \\fs\public %password% /user:%login%
if errorlevel 0 echo %DATE% %TIME% 0012 SIRBIS Подключение к fs - ОК >>%CIRBIS%\%DATE%-log.txt
goto step0
net use y: \\fs\public %password% /user:%login%
if not errorlevel 0 echo %DATE% %TIME% 0012 SIRBIS Подключение к fs - не ОК >>%CIRBIS%\%DATE%-log.txt goto fail
:step0
rem // 4 Выводим текущее время и делаем запись в лог
echo %DATE% %TIME% 0010 SIRBIS Начало бекап-скрипта - ОК >>%CIRBIS%\%DATE%-log.txt
rem // 3 переименовываем старые архивы
ren %EIRBIS%\%DATE%_older.rar %DATE%_older1.rar
ren %EIRBIS%\%DATE%.rar %DATE%_older.rar
echo %DATE% %TIME% 0011 SIRBIS Переименование архивов - ОК >>%CIRBIS%\%DATE%-log.txt
rem // 5 начинаем копирование
echo %DATE% %TIME% 0012 SIRBIS Копирование каталога - начато - ОК >>%CIRBIS%\%DATE%-log.txt
cd c:\
xcopy %SIRBIS%\* %CIRBIS%\%DATE%\ /s /e
rem /s - копирует все папки и подпапки, кроме пустых;
rem // 6 проверяем на отсутствие ошибок и делаем запись в лог
if errorlevel 0 echo %DATE% %TIME% 0012 SIRBIS Копирование каталогов - завершено - ОК >>%CIRBIS%\%DATE%-log.txt
rem ping -n 3 127.0.0.1 > nul
rem // 7 запускаем архивацию
echo %DATE% %TIME% 0013 SIRBIS Архивация каталогов - начато - ОК >>%CIRBIS%\%DATE%-log.txt
"c:\Program Files (x86)\WinRAR\rar.exe" a -ep1 -df -r %EIRBIS%\%DATE%.rar %CIRBIS%\%DATE%
rem a - добавить файлы в архив; -df - удалить файлы после архивации; -r - рекурсивно с подкаталогами;
:pause
echo %DATE% %TIME% 0000 SIRBIS пауза 10 секунд >>%CIRBIS%\%DATE%-log.txt
ping -n 3 127.0.0.1 > nul
rem // 9 проверяем наличие файла, делаем запись в лог при ошибке, критическая ошибка, конец скрипта
rename %EIRBIS%\%DATE%.rar %DATE%.rar
if not errorlevel 0 echo %DATE% %TIME% 9111 SIRBIS Архивация еще не завершена... >>%CIRBIS%\%DATE%-log.txt goto pause
rem // 8 проверяем наличие файла, делаем запись в лог при ошибке, критическая ошибка, конец скрипта
if exist %EIRBIS%\%DATE%.rar goto step1
:step1
rem // 14 проверяем архив на доступность, делаем запись в лог при занятости файла и снова в цикл
rem // пауза 10 секунд
echo %DATE% %TIME% 1000 SIRBIS пауза 10 секунд >>%CIRBIS%\%DATE%-log.txt
ping -n 3 127.0.0.1 > nul
rename %EIRBIS%\%DATE%.rar %DATE%.rar
if not errorlevel 0 echo %DATE% %TIME% 9111 SIRBIS Архивация еще не завершена... >>%CIRBIS%\%DATE%-log.txt goto step1
rem // 15 и еще раз проверяем, если ошибок нет, пишем в лог
rename %EIRBIS%\%DATE%.rar %DATE%.rar
if errorlevel 0 echo %DATE% %TIME% 0013 SIRBIS Создание архива - завершено - ОК >>%CIRBIS%\%DATE%-log.txt
:step2
rem // 11 копируем получившийся архив на fs
@chcp 1251
xcopy %EIRBIS%\%DATE%.rar %ZIRBIS%\ /s /e /y /i
if not errorlevel 0 echo 3333 Твою мать....>>%CIRBIS%\%DATE%-log.txt goto fail
:step3
rem // 12 делаем контрольную запись в лог
echo %DATE% %TIME% 0013 SIRBIS Проверка на наличие архива в целевой папке... >>%CIRBIS%\%DATE%-log.txt
rem // пауза 10 секунд
echo %DATE% %TIME% 2000 SIRBIS пауза 10 секунд >>%CIRBIS%\%DATE%-log.txt
ping -n 3 127.0.0.1 > nul
rem // 13 проверяем наличие файла, делаем запись в лог при ошибке, критическая ошибка, конец скрипта
if not exist %ZIRBIS%\%DATE%.rar goto fail
rem // пауза 10 секунд
echo %DATE% %TIME% 3000 SIRBIS пауза 10 секунд >>%CIRBIS%\%DATE%-log.txt
ping -n 3 127.0.0.1 > nul
rem // 14 проверяем архив на доступность, делаем запись в лог при занятости файла и снова в цикл
rename %ZIRBIS%\%DATE%.rar %DATE%.rar
if not errorlevel 0 echo %DATE% %TIME% 9111 SIRBIS Выгрузка архива - еще не завершено... >>%CIRBIS%\%DATE%-log.txt goto step3
rem // 15 и еще раз проверяем, если ошибок нет, пишем в лог
rename %ZIRBIS%\%DATE%.rar %DATE%.rar
if errorlevel 0 echo %DATE% %TIME% 0014 SIRBIS Выгрузка архива - завершено - ОК >>%CIRBIS%\%DATE%-log.txt
:step4
rem // 16 начинаем очистку, пишем в лог
echo %DATE% %TIME% 9115 SIRBIS Архив скопирован для бекапа, очистка начата - ОК >>%CIRBIS%\%DATE%-log.txt
del %EIRBIS%\%DATE%_older1.rar /s /q
rem // 17 заканчиваем отчет
echo %DATE% %TIME% 0016 SIRBIS Удаление временного архива - завершено - ОК >>%CIRBIS%\%DATE%-log.txt
rem пауза 10 секунд
echo %DATE% %TIME% 4000 SIRBIS пауза 10 секунд >>%CIRBIS%\%DATE%-log.txt
ping -n 3 127.0.0.1 > nul
rem // 18 пишем стоп
net use y: /delete
echo %DATE% %TIME% 0017 SIRBIS Завершение бекап-скрипта - ОК >>%CIRBIS%\%DATE%-log.txt
echo ****** >>%CIRBIS%\%DATE%-log.txt
echo *** КОНЕЦ ВЫПОЛНЕНИЯ РЕЗЕРВНОГО КОПИРОВАНИЯ СЕРВЕРА ИРБИС-64 >>%CIRBIS%\%DATE%-log.txt
echo ****** >>%CIRBIS%\%DATE%-log.txt
exit
:fail
net use y: /delete
echo *************************** >>%CIRBIS%\%DATE%-log.txt
echo ВНИМАНИЕ! ОШИБКА! >>%CIRBIS%\%DATE%-log.txt
echo %DATE% %TIME% 9999 SIRBIS Аварийное завершение бекап-скрипта - FAIL >>%CIRBIS%\%DATE%-log.txt
echo *************************** >>%CIRBIS%\%DATE%-log.txt
exit
Аналогичный батник работает для любой другой папки, если указать в параметрах.
Логи пишутся тут же, в указанные файлы.
Пример лога:
Редактировано 1 раз. Последний раз 25.06.2015 10:58 пользователем hardmid.