华为云空间设备监控
阅读目录
- 华为云空间设备监控
- 1. 前期思想
- 2. 主要功能
- 3. 方式选择
- 4. 遇到的问题及解决方式
- 5. 关于通知服务端的选择
- 6. 托管至服务器定时执行
- 7. 项目代码
- 8. 声明
1. 前期思想
写一个脚本上传到服务器,定时获取设备信息,并且监测状态变更
后来考虑到便利性,将获取到的数据统一上传到了数据库内,还通过PushPlus,调用接口发送信息给微信
2. 主要功能
- 云监控华为设备状态信息,并存储至数据库
- 检测设备状态变更(在线状态、上线地址状态、网络状态、电量状态)
- 发现设备状态异常变更,则通过PushPlus微信通知
- 发现设备离线,则自动设置短信通知
- 多设备监控
3. 方式选择
- 协议获取
- 模拟操作
考虑到华为的参数不是很好逆向,复杂程度高。就使用了selenium,正好试试手
4. 遇到的问题及解决方式
-
selenium、chrome和chromedriver在linux平台上的安装
- 主要是版本要对的上,要不然用不了的
- chrome安装方法就很多了,百度一下到处都是
-
关于linux平台的chrome配置
- 一个很重要的参数:
'--no-sandbox'
,一定要加
- 一个很重要的参数:
-
Chrome设定语言的问题
Chrome默认设定是英文的,就算更改了系统语言也没有效果
后来也试过给Chrome加参数lang=zh
orlang=zh_CN
orlang=zh_CN.UTF-8
都没有效果,最后只能“曲线救国”了- 解决方法就是,加载网页后检测语言,不是中文就切换成中文
问题又来了,直接模拟点击中文的li是无效的,因为什么呢?
因为简体中文的li标签是放在偏后面的,必须要滑下去看到中文了,才能点击。
我就去想试试模拟鼠标滑动,看了一圈觉得太麻烦,转头研究起了css
能不能通过css让它直接出现在我们眼前呢?- 经过我的折腾后还是实现了
div = document.getElementById('wrapper'); div.style.overflow='visible'; div.style.top='-2700px';
三行代码解决问题:直接把它从后面拉起来,使得元素可见
随后模拟点击简体中文切换即可
5. 关于通知服务端的选择
- Server酱
- PushPlus
6. 托管至服务器定时执行
- 采用Crontab服务(自行百度了解)
最后完成的效果还是比较满意的,由于实验时间不长,很多场景都没能出现,指不定后面还得修bug
至于多设备就没打算折腾了,也没那么多
7. 项目代码
- 请移步至GitHub参阅完整代码
8. 声明
- 咱不搞违法,代码就仅供参考学习,咱也搞不起违法