我需要检查服务器是否正常运行?如果宕机,我需要发送一封电子邮件,并且这个任务应该每30分钟重复执行。
我必须使用批处理文件来完成此操作。
我需要检查服务器是否正常运行?如果宕机,我需要发送一封电子邮件,并且这个任务应该每30分钟重复执行。
我必须使用批处理文件来完成此操作。
@echo off
ping -n 1 %1 > NUL
IF ERRORLEVEL 0 (echo "Up -- Don't send email.") ELSE echo "Down -- Send email."
这样调用:
C:\>checkserver 127.0.0.1
"Up -- Don't send email."
C:\>checkserver 128.0.0.1
"Down -- Send email."
%errorlevel%
无法与 ping
命令一起使用。当您收到 Reply from ... host unreachable
的消息时,%errorlevel%
仍然为0。 - mivk如果您知道其IP地址,可以尝试访问其中一个文件系统共享或ping它。这将是最简单的方法,两者都可以通过CMD完成。
要检查服务器是否在线,您可以使用 ping
命令。要发送电子邮件,您可以下载像 blat
等邮件工具。如果需要每30分钟执行一次,请设置任务计划程序。
您可以检查机器是否回复ping
。但是因为Windows上的ping不会返回有用的%errorlevel%
,所以您需要通过find
将其输出导入。
例如:
ping -4 -n 2 YourIPorHostname | find "TTL=" >NUL && echo OK
或者
ping -4 -n 2 YourIPorHostname | find "TTL=" >NUL || echo No reply