VPS主机商为了可以吸引更多的客户,都会推出一些廉价的VPS主机促销产品,但是这类产品套餐有一定的时限,或者是断货后再补货,如果不及时关注官网则可能错过优惠产品。这篇文章是来分享一下监控各大VPS主机商的库存,同时可以做到上货后微信和TG通知。
VPS-Inventory-Monitoring是一个免费开源的项目,主要原理是通过Curl 抓取网页源代码来监控目标字段的变化,例如当特定的网页URL中出现了“缺货”、“Out of Stock”等字样,就表示该主机套餐还没有补货了,利用这个原理我们可以实时显示VPS主机套餐的库存了。
一、VPS库存监控安装
网站:
- 项目:https://github.com/546669204/vps-inventory-monitoring
- 备用:https://github.com/freehao123/vps-inventory-monitoring
- VPS补货监控频道:https://vps.aiznh.com/
1.1 安装准备条件
一台VPS主机。VPS-Inventory-Monitoring需要用到定时任务,虽然虚拟主机也可以实现,但是建议使用VPS主机,没有的话参考这里:VPS主机推荐。
手动安装
- 安装宝塔面板
- 进入面板安装PHP 5.4以上版本,以及Nginx,mysql环境,再添加域名。
- 上传源码到网站根目录
源码:https://github.com/546669204/vps-inventory-monitoring/archive/master.zip - 网站伪静态配置选择thinkphp
- 在网站目录设置中把网站的运行目录修改为public,并且去掉勾选‘防跨站攻击’,不然会报错no input file specified.
- 将根目录下的mysql.sql通过宝塔导入到你的数据库,并且编辑app/database.example.php文件,重命名为database.php,并填写数据库信息
- 编辑app/index/config.php文件,修改定时时间、域名等,然后打开域名访问即可。
- 最后网站还不能自己定时检测库存,我们需要设置定时检测库存,有2种方法(建议第一种)
方法一、定时任务设置 点击宝塔左侧定时计划,任务类型选择URL访问,时间设置每30分钟,URL:https://xx.com/index/index/test 方法二、运行验证程序,间隔时间去app/index/config.php修改 screen -S vpstest //创建screen cd [网站根目录] php think VpsTest CTRL A D //退出screen 然后关闭ssh即可 重新进入查看可使用 screen -r vpstest
- 使用
⑴ 由于原项目没有说明初始用户名和密码,并且我进入数据库xm_user查看并没有账户,所以首先自行注册一个账户(基本上这个账户的ID就是1了),相应添加监控的账户权限在app/index/config.php文件,修改adduid改成自己账户对应的ID即可
⑵ 程序暂时没有删除以及编辑操作,不过我们可以去数据库,通过操作xm_place、xm_company、xm_index进行删除及编辑操作。
⑶ 如果添加后不会检测,修改数据库xm_index的status为1(1视为通过审核)
docker安装
- 安装宝塔
- 安装docker管理器,软件商店中安装
- 安装docker-compose
pip install docker-composegit clone https://github.com/546669204/vps-inventory-monitoring.gitcd vps-inventory-monitoringdocker-compose up -d
- 访问
ip:7780
如有问题,请尝试:docker-compose downdocker-compose builddocker-compose up -d
验证函数说明
函数说明$curl[“Code”] 返回状态码$curl[“RequestHeader”] 请求头$curl[“ResponseHeader”] 返回头$str 返回源代码$value[“stock”] 原库存状态
使用示例
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;
TG推送机器人
由于作者关闭了TG的bot,这里需要自建bot来推送消息。
项目地址:https://github.com/546669204/Telegram-Push-Bot
- 添加 botfather,输入/newbot ,然后输入BOT昵称,再输入BOT名字,然后就会得到带有token的一大段文字
- 下载推送源码,并修改bot.php文件里面的token为自己bot的token(注意格式,bot这个字要保留,详情参考下图)
- 在宝塔上新建网站,绑定域名,并且把bot.php上传到网站根目录,并且用宝塔开启SSL(Let’s Encrypt就行)
- 访问链接:
https://api.telegram.org/bot[Token]/setWebhook?url=https://[domain]/bot.php
其中[token]修改为自己bot的token,[domian]修改为bot.php所在网站的域名 - VPS-Inventory-Monitoring 默认代码用的作者的TG Bot,因此我们需要把源码的链接替换掉成自己的。请分别打开以下文件,把
https://cloud.hcaiyue.top/tgbot.php
替换成自己的
/gotest/config.json /app/index/model/index.php /app/index/command/VpsTest.php
- 邀请自己的bot进入频道,设置为管理员 然后在频道发送
/start
获取 sckey ,填入/app/index/config.php
也可以手动通过`POST http://[domain]/bot.php
method=send&sckey=[XXX]&content=[CONTENT]`
来发送消息
添加VPS主机监控
添加主机管理员
- 打开VPS-Inventory-Monitoring界面,点击注册账号,添加管理员。
- 去数据库找到
xm_user
删除id为1的初始账户,找到自己注册账户id,并编辑app/index/config.php
文件,将adduid
改成自己的。然后就可以开始添加监控了。
添加监控数据
可以输入VPS主机的套餐的详细信息
也可以直接到Mysql数据库中直接添加、删除、复制等操作