很多运维朋友都有过这样的经历:
服务器突然打不开了,一查才发现——忘记续费了!(完全可以换成每天事件提醒,天气提醒等等更多玩法)
轻则网站访问异常,重则数据丢失、客户流失、老板暴怒。
其实这种低级错误,完全可以通过一个几十行 PHP 脚本自动解决。
今天分享一个我自己在用的方案:
👉 PHP + 企业微信机器人,实现服务器到期自动提醒系统
一、这个脚本能干什么?
一句话总结:
自动统计多台服务器到期时间,并每天推送到企业微信提醒你续费。
你可以用它来提醒:
云服务器到期(阿里云 / 腾讯云 / 华为云)
域名到期
SSL证书到期
CDN到期
任何需要“时间提醒”的东西
二、效果展示(真实使用场景)
三、核心原理非常简单
这个系统其实就三步:
在数组中填写所有服务器信息
PHP 自动计算距离到期天数
调用企业微信机器人接口发送消息
不依赖数据库、不依赖框架、
放到任何服务器都能跑。
四、为什么强烈建议你搞一个?
1️⃣ 防止重大事故
忘记续费是最蠢、但最常见的运维事故之一。
尤其是:
人脑记忆根本不可靠。
2️⃣ 自动化程度极高
搭好一次后:
每天自动推送到微信。
真正意义上的无人值守运维提醒系统。
3️⃣ 成本为 0
不需要买软件、不需要买服务:
PHP:免费
企业微信机器人:免费
定时任务:系统自带
真正的:零成本自动化工具。
4️⃣ 可无限扩展
你还可以继续升级:
剩余天数 < 30 天才提醒
分组不同项目
接入钉钉 / 飞书 / Telegram
加上邮件 / 短信双提醒
甚至可以做成完整运维监控平台。
五、适合哪些人用?
这个脚本特别适合:
运维工程师
站长
做 SaaS 项目的人
接私单的开发者
做多站群 / 多服务器的人
做跨境项目 / 海外服务器的人
只要你有超过 2台服务器以上,这个工具就必装。
六、真实感受一句话
老板夸我细心,
客户觉得我专业,
其实只是我会偷懒 😄
七、进阶玩法(高手必看)
如果你是进阶玩家,还可以这样玩:
直接从「脚本」升级为「运维系统」。
建一个新站点,该站点创建一个index.php文件,粘贴代码。然后到宝塔计划任务建立定时任务即可,通知时间自由设置。测试是否成功:浏览器进入该站点企业微信收到信息。填写自己企业微信key即可,里面内容可以自由修改!
<?php$wechatRobotAPI = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=企业微信key';// 多台服务器的配置,每个服务器一个数组$servers = [ [ 'name' => '服务器1', 'nextExpirationDate' => '2029-12-12', ], [ 'name' => '服务器2', 'nextExpirationDate' => '2026-12-12', ], [ 'name' => '服务器3', 'nextExpirationDate' => '2028-12-14', ], [ 'name' => '服务器4', 'nextExpirationDate' => '2026-10-20', ], [ 'name' => '服务器5', 'nextExpirationDate' => '2026-05-17', ], // 添加更多服务器信息...];// 获取当前日期和时间$currentDateTime = date('Y-m-d H:i:s');// 构建通知消息$messageContent = "Hill,帅哥!当前时间:\n\n{$currentDateTime}\n\n";foreach($servers as $server) { $serverName = $server['name']; $nextExpirationDate = $server['nextExpirationDate']; // 计算距离到期的天数 $daysLeft = intval((strtotime($nextExpirationDate) - strtotime($currentDateTime)) / (60 * 60 * 24)); $messageContent .= "{$serverName}\n服务器到期日期:{$nextExpirationDate},\n剩余 {$daysLeft} 天,请及时处理。\n\n";}$message = [ 'msgtype' => 'text', 'text' => [ 'content' => $messageContent ]];// 发送消息到企业微信机器人$options = [ 'http' => [ 'method' => 'POST', 'header' => 'Content-Type: application/json', 'content' => json_encode($message) ]];$context = stream_context_create($options);$result = file_get_contents($wechatRobotAPI, false, $context);// 输出结果echo "通知发送结果:{$result}\n";?>
读到这里说明你喜欢本公众号的文章,欢迎 置顶(标星)本公众号 小目标工作室,这样就可以第一时间获取推送了~