Для простенькой ротации файлов бэкапа, чтобы их не накапливались дикие гигабайты, был написан скрипт mwiki_bkup_rotation.cmd:
@echo off
REM **************************************************
REM По расписанию перемещаем файлы из каталога source
REM в каталог dest.
REM Поскольку каталог dest каждый раз очищается,
REM то накопления файлов не происходит.
REM Такая простенькая ротация файлов.
REM **************************************************
REM Установка переменных
setlocal
set source=D:\arhiv\mwiki_bkup
set dest=D:\arhiv\mwiki_bkup\old
set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%
REM Проверка существования архива за текущий день
if exist %source%\mwikibkup_%now%.zip (
REM Если архив существует, считаем, что всё в порядке:
REM Очистка каталога со старыми файлами и перемещение в него новых
del /Q %dest%\*.*
move %source%\*.* %dest%
echo Backup files moved >> %dest%\rotation.log
date /t >> %dest%\rotation.log
time /t >> %dest%\rotation.log
) else (
REM Если архива нет, то в панике шлём письмо об ошибке
echo Error! >> %dest%\rotation.log
date /t >> %dest%\rotation.log
time /t >> %dest%\rotation.log
call D:\path\to_file\Programs\cmd\senderr_mwiki.cmd
)
:END
Командный файл, который "в панике шлёт письмо об ошибке" (senderr_mwiki.cmd):
@echo off
setlocal
set smtpsender=username1@yandex.ru
set smtpserver=smtp.yandex.ru
set smtpport=25
set smtpuser=username1@yandex.ru
set smtppwd=password
set subj="Mediawiki backup error!"
set msg="Mediawiki backup files not finded! Check in D:\arhiv\mwiki_bkup and on your Mediawiki server."
set mailto=username2@yandex.ru
set logfile=D:\path\to_file\Programs\blat307\log\blat_log.txt
D:\path\to_file\Programs\blat307\full\blat.exe -to %mailto% -f %smtpsender% -server %smtpserver% -port %smtpport% -u %smtpuser% -pw %smtppwd% -log %logfile% -subject %subj% -body %msg%
:END