因为工作需要,写了几条简单的命令bat脚本
旨在:判断某数据库导出的数据log有没有当天successfully的字段
有的话则导出所需的三个文件
否则重启数据库及相关服务并输出两份记录
远程执行命令通过SysinternalsSuite下的
psexec.exe来实现
如下
@echo off&setlocal EnableDelayedExpansion
set TodayDw=%date:~0,4%-%date:~5,2%-%date:~8,2%
set Todaycopy=%date:~0,4%%date:~5,2%%date:~8,2%
for /f %%i in (tmp.txt) do (
findstr /r /c:"%TodayDw%.*job is exeucted successfully!" %%i &&echo.
if !errorlevel! == 0 (
if %%i ==string (
echo 导出日志
goto outlog
)
) else (
echo 重启服务
goto reboot
)
)
:stop1
SysinternalsSuite\psexec.exe \\ip -u Administrator -p qwer sc stop services1>nul
echo !errorlevel!stop1 >./result.log
:stop2
ping 127.0.0.1 -n 10 ::简单的延时10S
SysinternalsSuite\psexec.exe \\ip -u Administrator -p qwer sc stop services2>nul
echo !errorlevel!stop2 >>./result.log
:stop3
ping 127.0.0.1 -n 10
SysinternalsSuite\psexec.exe \\ip -u Administrator -p qwer sc stop services3>nul
echo !errorlevel!stop3 >>./result.log
:start1
ping 127.0.0.1 -n 10
SysinternalsSuite\psexec.exe \\ip -u Administrator -p qwer sc start services3>nul
echo !errorlevel!start1 >>./result.log
:start2
ping 127.0.0.1 -n 10
SysinternalsSuite\psexec.exe \\ip -u Administrator -p qwer sc start services1>nul
echo !errorlevel!start2 >>./result.log
echo 服务已重启,等待两小时 >>./reboot.log
date /t >>./reboot.log&time /t >>./reboot.log
echo.>>./reboot.log
echo 服务已重启,等待两小时
ping 127.0.0.1 -n 10>nul
exit
:reboot
call :stop1
call :stop2
call :stop3
call :start1
call :start2
:outlog
xcopy "\\ip\e$\%TodayDw%文件1*" E:\360Downloads\%Todaycopy%\ /i/y
xcopy "\\ip\e$\%TodayDw%文件2*" E:\360Downloads\%Todaycopy%\ /i/y
xcopy "\\ip\e$\%TodayDw%文件3*" E:\360Downloads\%Todaycopy%\ /i/y
pause>nul