很多的VPS主机商为了可以吸引更多的客户,都会推出一些廉价的VPS主机促销产品,但是这类产品套餐有一定的时限,或者是断货后再补货,如果不及时关注官网则可能错过优惠产品。这篇文章是来分享一下监控各大VPS主机商的库存,同时可以做到上货后微信和TG通知。
VPS-Inventory-Monitoring是一个免费开源的项目,主要原理是通过Curl 抓取网页源代码来监控目标字段的变化,例如当特定的网页URL中出现了“缺货”、“Out of Stock”等字样,就表示该主机套餐还没有补货了,利用这个原理我们可以实时显示VPS主机套餐的库存了。
挖站否在试用了VPS-Inventory-Monitoring,发现VPS-Inventory-Monitoring还可以用在监控网页内容更新或者是某一个自己想要的关注的内容,有点类似于Huginn抓取指定网页内容了。VPS-Inventory-Monitoring整合了Server酱和TG bot,可以做到实时提醒通知。
更多的关于个人获取信息,搭建信息资源平台,这里还有:
PS:更新记录。
1、有找网页内容变化实时监控和通知脚本工具的朋友可以试试这个:利用WebMonitor实时监控网页变化-支持手机微信,邮箱,TG等通知提醒。2022.8.20
2、有多个服务器的朋友可能想要一个可以展示服务器是否宕机的监控平台,可以试试:利用ServerStatus自建VPS主机和服务器性能和宕机监控平台-效果美化和自定义 。2019.12.14
网站:
一台VPS主机。VPS-Inventory-Monitoring需要用到定时任务,虽然虚拟主机也可以实现,但是建议使用VPS主机,没有的话参考这里:VPS主机排行榜单。
LNMP建站环境。在VPS上安装好Nginx、Mysql、PHP等建站环境,建议使用Oneinstack或者LNMP一键包,PHP至少要5.4 以上,支持PHP 7。如果嫌手动命令麻烦,可以用这里:服务器控制面板榜单。
在创建虚拟主机时,请将网站的根目录设置为:/data/wwwroot/vps.wzfou.com/public
,因为VPS-Inventory-Monitoring
的Web目录在public
里。
这里以Oneinstack一键包为演示,其它的面板可以参考。首先是进入到网站目录:/data/wwwroot/vps.wzfou.com
,使用Git方法将VPS-Inventory-Monitoring安装包下载下来,同时设置权限。
git clone https://github.com/546669204/vps-inventory-monitoring.git mv vps-inventory-monitoring/{.,}* ./ chmod -Rf 755 ./* chown -R www:www /data/wwwroot/vps.wzfou.com
如果你在创建虚拟主机时没有设置好路径为:/data/wwwroot/vps.wzfou.com/public
,那么你现在需要将网站的根目录改成public,Nginx可以直接在配置中调整网站根目录。
进入到PhpMyAdmin,新建数据库,然后VPS-Inventory-Monitoring里的数据库文件mysql.sql导入进去。
如果出现Mysql数据库兼容等问题,请根据实际情况修改数据库文件mysql.sql里面的表结构。
根据wzfou.com的经验,在新建数据库用户时设定为:127.0.0.1而不是localhost,可以解决后期使用VPS-Inventory-Monitoring许多莫名其妙的问题。
修改系统配置 app/index/config.php
,这里可以定时任务的执行时间间隔、域名、TG地址等。
如果你用的是Nginx的话,需要添加以下伪静态规则:
location / { if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } }
网站:
如果你想设置TG自动提醒,你需要在app/index/config.php中填写tgchannelsckey。原作者的TGBot已经关闭,你可以邀请@wzfoubot
将https://t.me/wzfoubot添加为你的频道管理员。
然后在频道发送 /start
获取sckey 填入,如下图:
如果你想自己搭建TG 机器人也比较简单,首先是添加@BotFather好友,或者直接打开 : https://telegram.me/BotFather发起聊天,输入 /newbot 命令,并输入您的机器人的名称。如下图:
现在你已经得到了TG 机器人token ,打开bot.php,将token替换。如果你的token是693:wzfou.com
,那么替换就是:https://api.telegram.org/bot693:wzfou.com
/sendMessage。
把bot.php上传到Web空间上,确保可以用浏览器可以访问。然后调协web hook
,打开:https://api.telegram.org/bot[Token]/setWebhook?url=https://[domain]/bot.php
,返回如下表示成功了。
现在你可以向你的TG 机器人发送/start
命令获取sckey,你可以使用自己的机器人了,命令如下(你可以使用Postman软件或者在线POST模拟请求):
https://[domain]/bot.php method=send&sckey=[XXX]&content=[CONTENT] #这是一个post 请求 #第一行为url #第二行为body #成功之后 和 机器人聊天 会返回 sckey 使用 sckey 调用 bot 这个请求 就可以测试 发送消息
VPS-Inventory-Monitoring默认的用的代码作者的TG Bot,因此我们需要替换掉成自己的。请分别打开以下文件,查看bot.php替换成你自己的(没有自建的话,用这个:https://meimei.wzfou.net/bot.php
):
/data/wwwroot/vps.wzfou.com/gotest/config.json
/data/wwwroot/vps.wzfou.com/app/index/model/index.php
/data/wwwroot/vps.wzfou.com/app/index/command/VpsTest.php
如下图:
你需要打开VPS-Inventory-Monitoring界面,点击注册账号。
然后就是填写基本的信息了,如下图:
说明:
ftsckey是用来接收微信提醒的(这个功能主要是面向用户,方便用户接收消息),用的是Server酱服务,详情查看:
你也可以直接到Mysql数据库中直接添加、删除、复制等操作。
3.3 验证函数说明
函数说明
$curl[“Code”] 返回状态码
$curl[“RequestHeader”] 请求头
$curl[“ResponseHeader”] 返回头
$str 返回源代码
$value[“stock”] 原库存状态
例如:
if ($curl["Code"] != 200){ //首先判断状态码 return false; } if (strpos($str,"wzfou")==false){ //检测是否正常打开有无公司名字之类关键词 return $value["stock"]; //返回原库存状态 } if (strpos($str,"缺货")!==false){ //检测是否含有缺货关键词 return false; } return true;我用的示例如下:
if ($curl["Code"] != 200){ return false; } if (strpos($str,"微基")==false){ return $value["stock"]; } if (strpos($str,"缺货")!==false){ return false; } return true; if ($curl["Code"] != 200){ return false; } if (strpos($str,"Bandwagon")==false){ return $value["stock"]; } if (strpos($str,"Out of Stock")!==false){ return false; } return true; if ($curl["Code"] != 200){ return false; } if (strpos($str,"GigsGigsCloud")==false){ return $value["stock"]; } if (strpos($str,"CLOUDLET LAX-V1")==false){ return false; } return true;3.3 自动运行监控
目前VPS-Inventory-Monitoring提供
cron+http 、php think vpstest 、go 代码编译运行
三种运行监控的方式,这里推荐使用最简单的方法:php think vpstest
。方法如下:screen -S vpstest //创建screen cd [网站根目录] php think VpsTest CTRL A D //退出screen 然后关闭ssh即可 重新进入查看可使用 screen -r vpstest如下图:
四、上货微信/TG提醒
4.1 添加订阅
如果你是一个用户,想指定某一个产品有货时提醒,你需要在注册时填写你ftsckey和tgsckey,然后点击订阅该产品。
4.2 微信提醒
当订阅的产品有货时,微信就会收到提醒消息了。
4.3 TG消息提醒
当订阅的产品有货时,你的TG会收到
@wzfoubot
机器人发来的消息提醒,如下图:4.4 TG全站提醒
- 演示:https://t.me/vpswzfou
如果你按照上面的方法将TG机器人设置为你的TG频道管理员,那么你就可以实现当产品有货上新时自动在TG频道里发布消息。用户只关注了你的频道就可以收到消息了。
五、总结
VPS-Inventory-Monitoring安装的关键地方在于导入数据库,同时在添加监控时填写好PHP验证函数,基本原理就是用Curl的方法获取网页源码,如果发现有指定关键字,那么就返回是否有货。
VPS-Inventory-Monitoring设置微信和TG消息提醒,需要搭建好自己的TG Bot,当然你也可以使用本站当前正在的TG Bot,记得替换一下原代码中的TG Bot,否则你可能就收不到提醒了。
文章出自:挖站否 https://wzfou.com/vps-kucun/,版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
本文已收录到:网站服务器监控专题
- 哪吒监控-服务器状态监控,SSL证书变更到期,Ping监控和定时任务提醒
- VPS主机和服务器网络线路监控平台-SmokePing Nginx一键安装使用
- Linux和Windows服务器监控工具NodeQuery和NIXStats安装与使用
- 利用ServerStatus自建VPS主机和服务器性能和宕机监控平台-效果美化和自定义
- VPS主机库存上货监控与微信\TG通知系统:VPS-Inventory-Monitoring安装与配置
- 网络监控工具:SmokePing Nginx一键安装/管理脚本和Looking Glass中文汉化
- 免费开源PHP探针x-prober和酷炫的Linux服务器性能实时监控工具Netdata
- Smokeping安装与配置-免费开源网络性能监控工具可视化主/从部署
- RustDesk开源的远程桌面软件-自建免费远程桌面服务 支持电脑手机全平台
文章更新于: %s = human-readable time difference 下午4:01
查看评论
大佬,bot.php这个文件在哪里获取,github项目文件中没有找到
还有个问题,打开网页显示No input file specified.这个教程中没有讲到怎么解决
这个应该是没有正确写好伪静态规则
在另一个博客里找到了bot.php文件,但是按照操作无法获取tgchannelsckey,给机器人发送/start没有回应,频道私聊都是这样,求解
您好我用botfather建了bot机器人,也在频道给了admin权限;并且把bot.php修改了token,上传到根目录,但是给bot机器人发/start,却无法收到tgchannelsckey,web hook显示成功过,请问无法收到sckey是什么原因造成的?谢谢
检查一下修改的php是不是正确,我之前也遇到这样的问题。
是bot.php吗,go_curl("https://api.telegram.org/bot1077017526:xxxxxxxDEiETYPtBSgolE/sendMessage","POST",$data);
您看这个修改的有问题不,谢谢
这个貌似没有问题。
还有就是bot.php是放在public目录下还是网站根目录下
是放在网站根目录,要保证在浏览器可以正常访问。你的访问正常吗?
添加监控点击保存显示如下错误:
页面错误!请稍后再试~
url伪静态没有做好。
这个用起来怎么样。好像没什么人用。
效果不错。
这就厉害了!已收藏~
TG群多少。我找不到了……
TG频道订阅:https://t.me/wzfou,这里会发布挖站否的最新文章消息。TG群组地址:https://t.me/wzfoucom,欢迎加入群聊。
手收藏了,
为什么我总是收不到通知?
这个厉害了,昨天我抢到一个搬工的20GB的套餐。
qi强啊,[给力],先看看再自建个。