@echo off
rem setlocal是批处理本地化的一种操作,在执行setlocal之后所做的环境改动只限于批处理文件
rem ENABLEDELAYEDEXPANSION 启用变量延迟,直到出现匹配的endlocal命令
SETLOCAL ENABLEDELAYEDEXPANSION
rem rem的意思是注释
rem 链接
set URL=“http://localhost:8080/ShipSuiteWeb/bi/index.htm”
rem 日志文件的路径
set LOG_PATH=D:\check.log
rem 每次检测完后等待时间,再进行下一次检测,若将程序部署到系统计划任务,可忽略
set TIME_WAIT=30
rem 邮件发送工具安装目录
set blat_Home=“E:\blat3219\full”
rem SMTP地址
set SMTP_HOST=“172.32.234.222”
rem 邮件发送用户名
set MAIL_SENDER=“simp”
rem 邮件发送密码
set MAIL_SENDER_PASSWORD=“password”
set SUBJECT=“生产服务器GlassFish已停止,请及时处理。”
rem echo string:将字符串显示在屏幕中
rem :loop 和下面的goto组合成循环
:loop
rem 设置变量http状态码
set httpcode=0
rem 打印时间
echo %date% %time%
rem 在屏幕上打印执行状态
echo ‘begin checking tomcat’
rem 将记录保存在日志文件中
rem 循环
rem FOR [参数] %%变量名 IN (相关文件或命令) DO 执行的命令
rem 其中参数有/d /l /r /f
rem 参数 /d (参数只能显示当前目录下的目录名字)
rem 参数 /R (搜索指定路径及所有子目录中与set相符合的所有文件)
rem 参数 /L (该集表示以增量形式从开始到结束的一个数字序列。可以使用负的 Step)
rem 参数 /F (使用文件解析来处理命令输出、字符串及文件内容。)
rem (相关文件或命令)指定一个或一组文件。可以使用通配符
for /l %%i in (1,1,20) do (
echo %%i
rem 借助工具获得项目的状态头(curl工具的安装会在下面提及)
for /f “delims=” %%r in (‘curl -sL -w “%%{http_code}” %URL% -o /dev/null’) do (
rem 将变量r的值赋值给httpcode
set httpcode=%%r
if !httpcode!==200 (
GOTO :OUTFOR
)
)
)
:OUTFOR
echo %httpcode%
if not %httpcode%==200 (
echo %date% %time% Dynamic stop >>%LOG_PATH%
echo %date% %time% send emails >>%LOG_PATH%
rem 切换到blat安装目录
cd /d %blat_Home%
rem blat -install %SMTP_HOST% %MAIL_SENDER%
rem blat body.txt -to %MAIL1%,%MAIL2% -u %MAIL_SENDER% -pw %MAIL_SENDER_PASSWORD% -subject %SUBJECT%
blat -install 172.32.234.222 simp
blat body.txt -to heyj2@coscon.com, xiazhw@coscon.com -u “%MAIL_SENDER%” -pw “%MAIL_SENDER_PASSWORD%” -subject “%SUBJECT%”
echo %date% %time% success to send emails
echo %date% %time% success to send emails >>%LOG_PATH%
) else (
echo the application is running
echo %date% %time% the application is running>>%LOG_PATH%
)
timeout -t 3 >nul
timeout -t %TIME_WAIT% >nul
goto loop
各种IT书籍书目及下载链接
https://blog.csdn.net/dh1027/article/details/89327978