SQL 2012故障转移集群状态监听脚本-ITB运维部落—http://www.itbcn.cn—ITB运维技术交流之家平台
记录工作点滴
分享运维知识

SQL 2012故障转移集群状态监听脚本

方法一:

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","",1)(window.close)&&exit
cd /d "%~dp0"
set secs=5
::监听循环时间
set files=D:\data\
::监听目录
set srvname="mssqlserver"
::监听服务名
echo.
echo ========================================
echo == 查询服务的状态, ==
echo == 每间隔%secs%秒种进行一次查询, ==
echo == 如发现其停止,则立即启动。 ==
echo ========================================
echo.
echo 此脚本监测的服务是:%srvname%
echo.
if %srvname%. == . goto end
:start
if not exist %files% (
sc query|find "%srvname%" && echo %date%%time% 数据文件不存在,%srvname%启动 >> log.txt & net stop %srvname% >>log.txt || echo %date%%time% 数据文件不存在,当前系统为备用服务器,%srvname%未启动
) else (
sc query|find "%srvname%" && echo %date%%time% 数据文件存在,%srvname%未启动 >> log.txt & net start %srvname% >>log.txt || echo %date%%time% 数据文件存在,%srvname%启动

)
ping -n %secs% 127.0.0.1 > nul
goto start
:end
pause

方法二

@echo off
mode con lines=30 cols=60
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","",1)(window.close)&&exit
cd /d "%~dp0"
@echo off
echo.
echo ========================================
echo == 查询计算机服务的状态, ==
echo == 每间隔%secs%秒种进行一次查询(用任务计划处理), ==
echo == 如发现其停止,则立即启动。 ==
echo ========================================
echo.
echo.
@echo off
set secs=10
::监听循环时间
set files=D:\data\
::监听目录
for /F "tokens=* delims=" %%a in (promonitor.ini) do call :__monitor "%%a"
:__monitor
@echo off
echo %1
set svrst=0
for /F "tokens=* delims= " %%a in ('net start') do if /I "%%a" == %1 set svrst=1
if not exist %files% if %svrst% == 0 net stop %1 || echo 目录存在,服务为未启动
if exist %files% if %svrst% == 0 net start %1 || echo 目录存在,服务为启动
set svrst=
ping -n %secs% 127.0.0.1 > nul
goto :__monitor
pause
未经允许不得转载:ITB运维部落—http://www.itbcn.cn—ITB运维技术交流之家平台 » SQL 2012故障转移集群状态监听脚本

如果文章对你有帮助,欢迎点击上方按钮打赏作者

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址