简单bat实现类似DNSPOD、宝塔云监控等监控网站运行状态
不废话、上代码:@Echo offsetlocal enabledelayedexpansion:: 配置参数set "URL=https://www.example.com" :: 监控的网址set "CHECK_INTERVAL=60" :: 检查间隔(秒)set "RECIPIENT=admin@example.com" :: 接收报警的邮箱set "SENDER=monitor@example.com" :: 发件人邮箱set "SMTP_SERVER=smtp.example.com" :: SMTP服务器地址set "SMTP_PORT=587" :: SMTP端口set "SMTP_USER=your_account" :: SMTP用户名set "SMTP_PASS=your_password" :: SMTP密码/授权码:: 主循环:monitor_loopecho [%date% %time%] 正在检查网站状态...:: 使用curl检测网站状态curl -s -o nul -I -w "%%{http_code}" "%URL%" > status.tmpset /p HTTP_CODE=<status.tmp:: 状态码判断if not "!HTTP_CODE!"=="200" ( echo [%date% %time%] 网站异常,状态码:!HTTP_CODE! call :send_alert "HTTP状态码异常:!HTTP_CODE!") else ( echo [%date% %time%] 网站运行正常):: 等待下次检查timeout /t %CHECK_INTERVAL% /nobreakgoto monitor_loop:: 发送邮件函数:send_alertset "ERROR_MSG=%~1"set "PS_COMMAND=Send-MailMessage -From '%SENDER%' -To '%RECIPIENT%' -Subject '网站异常警报' -Body '异常时间:%date% %time%\%ERROR_MSG%\n监控网址:%URL%' -SmtpServer '%SMTP_SERVER%' -Port %SMTP_PORT% -UseSsl -Credential (New-Object System.Management.Automation.PSCredential('%SMTP_USER%', (ConvertTo-Secure-String '%SMTP_PASS%' -AsPlainText -Force)))"PowerShell -Command "%PS_COMMAND%"echo [%date% %time%] 已发送异常通知到 %RECIPIENT%goto :eofendlocal使用说明:1、需要安装 cURL for Windows 并添加至系统PATH
2、确保PowerShell邮件功能可用(Windows自带)
3、修改URL为需要监控的网址
4、调整CHECK_INTERVAL设置检查频率(单位:秒)
5、配置SMTP参数(建议使用企业邮箱或邮件服务商提供的SMTP信息)
运行方式:
1、保存为.bat文件,右键以管理员身份运行
2、可通过任务计划程序设置为开机启动
注意事项:
1、测试时建议先使用有效邮箱地址和正确的SMTP配置
2、部分邮箱服务商需要开启SMTP服务并获取授权码
3、生产环境建议使用专用账号作为监控账号发送通知邮件
4、此脚本将持续监控指定网站,当返回状态码非200时触发邮件报警,日志信息会同时显示在控制台和邮件中。
欢迎大佬们畅所欲言、优化~ 4414zz原创发布
页:
[1]