工作中遇到 windows下apache 运行几天后总是会没响应的问题,写了下面的脚本来监控apache 服务实例的运行状态,检测到服务器无响应则重启。
工作原理:
1. 脚本定时通过curl 获取网站指定的页面,如果获取失败则重启监控的 apache 实例;
2. 把脚本放到windows计划任务里定时执行就行了;
curl 可通过 curl 官网下载,我也打了个包放在了 csdn上: apacheMonitor
@echo off
set chkWeb=http://192.168.2.31
set apacheInsName=apache2.2
curl -o home.html %chkWeb%
if %errorlevel% EQU 0 goto :success
if %errorlevel% NEQ 0 goto :errH
:success
echo 'Server is OK' >> out.txt
goto :eof
:errH
echo %date% %time%: error Code:%errorlevel% >> out.txt
net stop %apacheInsName%
ping /n 5 127.1 >nul
net start %apacheInsName%
if %errorlevel% EQU 0 goto :restartSuccess
if %errorlevel% NEQ goto :errH
goto :eof
:restartSuccess
echo %date% %time%: Server restart Success >> out.txt
goto :eof
:eof