### 程序运行 1. 用户需先向程序config内添加以下几项定义量: ACCOUNT,API_KEY,WAY 2. 用户运行install.sh脚本 脚本会先检测config.yml中的配置文件 缺少ACCOUNT,API_KEY,WAY向用户询问填写什么,同时WAY默认为ping(问句以红色展示) 若用户填写http,则让用户填写域名(可以访问的路径),通过英文逗号分隔域名 随后用户可添加例外参数,脚本检测到例外内的IP主机关机时,直接跳过,不进行开机 3. 脚本运行 创建名为idc_monitor的systemd服务,持续化运行当前路径下的main.py ### 程序逻辑 1. 1. 隔一段时间(SPAN)便根据WAY来探测目标存活 若为ping,则直接ping一遍所有的IP地址 若为域名,则使用HEAD方法探测相应域名是否正常响应 1. 2. 若存在不通的情况,进行如下操作 使用config.yml中的JWT请求VPS列表并挨个查询VPS状态是否为on(开机) 若返回响应码为405,即响应报文为 ``` { "status": 405, "msg": "请登陆后再试" } ``` 时,重新请求JWT并存储,随后再次请求VPS列表并查询状态 1. 3. 若均为开机状态,记录日志:什么时间点 - 发生了什么情况,实际没有机器关机,可能是禁ping或者服务器网站状态异常 1. 4. 若发现有机器关机,则使用开机接口(on)进行开机 1. 5. 所有机器都操作完成后隔60秒,再次查询刚才尝试开机操作的几台机器是否开机成功,若不超过则再来一遍 1. 6. 尝试开机操作两次后还是非开机状态,则中断本次循环,进入SPAN间隔准备下一次循环 1. 7. 以上所有操作均需记录为日志,分为正常日志和异常日志(例如:未发现存在机器关机,开机失败等)