首页 » 工作 » 正文

一个监控服务器连通性的bat脚本

发布者:某某人
2012/03/17 浏览数(1,252) 分类:工作 评论(1)

说明:

一段用来监控服务器是否能够正常连接的windows批处理脚本。

如果连不通会发送到指定邮箱一封邮件,另外在恢复后会再发一封。

需要自己修改脚本的这些变量:

1、被监视服务器的IP地址;

2、接收邮件的邮箱地址;

3、发送邮件的smtp信息;

运行时的截图:

代码:

:: 说明:在windwos操作系统中以ping方式监控服务器运行状态
::    如果故障会给指定邮箱发邮件(喜欢飞信机器人的朋友可以自己修改代码)
:: 日期:15:00 2012-03-17 周六
:: 用法:修改第6行的IP后打开后放那不用管它
@echo off

set svrIp=116.255.205.145
set signDir=%TEMP%
set emailToAddress=blog@upall.cn
set emailServer=smtp.qq.com
set emailUser=send@upall.cn
set emailPwd=xxxxxxxxx

set signStop=%signDir%\%svrIp%.stop
title Service Status Monitor [%svrIp%]

:begin
ping %svrIp% -n 1 >nul
if "0"=="%errorlevel%" ( goto isRunning ) else goto isStop
goto begin

rem 如果ping得通就执行这里的操作
:isRunning
if exist %signStop% goto resume
echo [%date% %time%] [%svrIp%] 正常运行中....
goto begin

rem 如果Ping不通则执行这里的操作
:isStop
if not exist %signStop% goto isStopFirst
echo [%date% %time%] [%svrIp%] 依旧宕机。
goto begin

:isStopFirst
echo %date%%time% > %signStop% && echo [%date% %time%] [%svrIp%] 宕机了,正在发送宕机邮件....
febootimail.exe -SERVER %emailServer% -TIMEOUT 1200 -PRIORITY 1 -AUTH LOGIN -USER %emailUser% -PASS %emailPwd% -FROM %emailUser% -TO %emailToAddress% -SUBJECT "服务器[%svrIp%]宕机,%date% %time%" -TEXT "服务器故障:【%svrIp%】。命令执行时间:%date% %time% <br />" -HTML -CHARSET GBK
goto begin

:resume
del /q %signStop% && echo [%date% %time%] [%svrIp%] 恢复正常,正在发送恢复邮件....
febootimail.exe -SERVER %emailServer% -TIMEOUT 1200 -PRIORITY 1 -AUTH LOGIN -USER %emailUser% -PASS %emailPwd% -FROM %emailUser% -TO %emailToAddress% -SUBJECT "服务器[%svrIp%]恢复正常,%date% %time%" -TEXT "服务器恢复正常:【%svrIp%】。命令执行时间:%date% %time% <br />" -HTML -CHARSET GBK
goto begin

下载:

Service_Status_Monitor.tar.gz

<完>

当前有1条留言

  1. 你好,很受用你的这篇文章。
    我有这么个需求,奈何水平不够,不知道楼主是否愿意帮助。
    同时监控一批主机,每间隔10分钟 每ip ping 5次,假定每IP 4次不通,则判断故障,同时使用smtp的方式发送邮件报警。
    因为ip比较多 需要单独存放在一个文件。

    谢谢

    [回复]

发表评论

你好,有什么需要帮助吗?
  1. 需要留言?
  2. 联系方式?