简介
本文介绍如何通过批处理脚本实现 PushPlus 的消息推送,以系统开机/重启事件举例,当发现系统重启之后使用pushplus推送至手机。PushPlus 是一个提供消息推送服务的平台,通过简单的 HTTP 请求,我们可以将自定义消息发送到手机等终端设备上。
脚本目的
该批处理脚本的主要目的是获取当前计算机的外网 IP 地址和系统重启时间,并将这些信息通过 PushPlus 接口推送到指定的设备上。具体而言,脚本完成以下任务:
1.获取当前时间和外网 IP 地址。
2. 构建推送消息内容,包括系统重启时间和外网 IP。
3. 使用 PushPlus 提供的 API 将消息推送到指定设备。
pushplus接口文档
使用技术
批处理脚本: 使用 Windows 批处理脚本(.bat)实现脚本逻辑。
HTTP 请求: 使用 Invoke-WebRequest 或 curl 工具向 PushPlus API 发送 POST 请求。
PushPlus API: 利用 PushPlus 提供的消息推送服务,需要提供 token、标题、内容等信息。
脚本示例
@echo off
setlocal enabledelayedexpansion
rem 获取当前时间
set time=%DATE% %TIME%
rem 获取外网 IP 地址
set ipapi=https://4.ipw.cn/
for /f "tokens=*" %%a in ('powershell -command "(Invoke-WebRequest -Uri %ipapi%).Content"') do (
set "external_ip=%%a"
)
set title=系统已重启
set content=Datacenter系统已重启\n^-重启时间:!time!\n^-IP:!external_ip!
set token=[自定义token]
set template=html
set url=http://www.pushplus.plus/send
rem 使用 PowerShell 来发送 HTTP POST 请求
powershell -Command "(Invoke-WebRequest -Uri !url! -Method POST -Body 'token=!token!&title=!title!&content=!content!&template=!template!').Content"
endlocal
也可以使用curl实现上述代码中powershell的部分,替换部分powershell 即可
rem 获取外网 IP 地址
set ipapi=https://4.ipw.cn/
for /f "tokens=*" %%a in ('curl %ipapi%') do (
set "external_ip=%%a"
)
rem 使用--data-urlencode选项对参数进行编码,并设置请求方法为POST
curl -X POST %url% -d "token=%token%&title=%title%&content=%content%&template=%template%"
使用方法
- 准备 PushPlus Token: 在 PushPlus 网站注册账户,获取推送 token。
- 修改脚本配置: 替换脚本中的*[自定义token]*变量为你在 PushPlus 上获取的 token。
- 运行脚本: 执行脚本,即可将系统重启信息推送到指定设备上。
总结
通过这个简单的批处理脚本,我们可以方便地实现系统事件的消息推送,使得用户能够及时获取相关信息,提高系统监控和管理的效率。同时,这也展示了如何在 Windows 环境下使用批处理脚本结合外部 API 实现自动化任务