定期监控sql server服务运行状态,如服务停止,则启动它?
这个比较简单的方法可以实现
net start 服务名称
放到windows的定时执行中就好了
如果服务已经启动则报 服务已经启动
以下是监控服务,并发送邮件
首先简单介绍一下SMTP
SMTP基本命令集:
命令 描述
HELO 向服务器标识用户身份
MAIL 初始化邮件传输 mail from:
RCPT 标识单个的邮件接收人;常在MAIL命令后面,可有多个rcpt to:
DATA 在单个或多个RCPT命令后,表示所有的邮件接收人已标识,并初始化数据传输,以.结束
QUIT 结束会话
MAIL FROM命令中指定的地址是称作envelope from地址,不需要和发送者自己的地址是一致的
RCPT TO 与之等同,指明的接收者地址称为envelope to地址,而与实际的to:行是什么无关
C:/>telnet smtp.163.com 25 //登陆 smtp.163.com 端口号为 25
220 163.com Anti-spam GT for Coremail System(163com[071018])
HELO localhost // 与服务器打招呼,并告知客户端使用的机器名字,可以随便填写
250 OK
AUTH LOGIN //使用身份认证登陆指令
334 dXNlcm5hbWU6
cmVkc25zMw== //输入已经base64_encode()过的用户名,只输入用户名,不需要带@163.com
//在线加密网址 http://www.base64online.com/
334 UGFzc3dvcmQ6
MbM2MMQ35Q== //输入已经base64_encode()过的密码
235 Authentication successful
MAIL FROM:
250 Mail OK
RCPT TO:
250 Mail OK
DATA //正面开始传输信件的内容,且最后要以只含有 . 的特殊行结束。
354 End data with .
To:[email protected]
From:[email protected]
Subject:test mail
From:[email protected]
test body
123
. //结束传输信件
250 Mail OK queued as smtp14,F0CPBFsuzUOvoDwE.41582S2
QUIT //断开连接
221 Bye
Connection closed by foreign host.
状态码说明:
220 : 服务就绪
250 :请求邮件动作正确,完成(HELO,MAIL FROM,RCPT TO,QUIT 指令执行成功会返回此信息)
235 :认证通过
221 :正在处理
354 :开始发送数据,结束以 .(DATA指令执行成功会返回此信息)
500 :语法错误,命令不能识别
550 :命令不能执行,邮箱无效
552 :中断处理:用户超出文件空间
——————————————————————————–
以163邮箱为例,利用.bat文件自动调用telnet发送邮件!
——————————————————————————–
依据上述原理,接下来我们就来个bat自动发送邮件,而不用一行行手动输入命令!!!代码如下:
echo set sh=WScript.CreateObject(“WScript.Shell”) >telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys “open smtp.163.com 25{ENTER}” >>telnet_tmp.vbs
echo WScript.Sleep 1000 >>telnet_tmp.vbs
echo sh.SendKeys “helo abc{ENTER}” >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys “auth login{ENTER}” >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys “!!youUserName!!{ENTER}” >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys “!!youPassWord!!{ENTER}” >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys “mail from:
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys “rcpt to:
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys “data{ENTER}” >>telnet_tmp.vbs
echo WScript.Sleep 300 >>telnet_tmp.vbs
echo sh.SendKeys “subject:!!!邮件主题!!!!{ENTER}{ENTER}” >>telnet_tmp.vbs
echo sh.SendKeys “!!!邮件内容!!!!{ENTER}” >>telnet_tmp.vbs
echo sh.SendKeys “.{ENTER}” >>telnet_tmp.vbs
start telnet
cscript //nologo telnet_tmp.vbs
del telnet_tmp.vbs
//代码拷贝“”可以存在语法错误,请替换成英文下的 ""