1 Star 0 Fork 0

黄杰/detect

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
web_client.cpp 1.88 KB
一键复制 编辑 原始数据 按行查看 历史
2010301140007@whu.edu.cn 提交于 2020-09-03 16:57 . first commit
#include <iostream>
#include <unistd.h>
#include <map>
#include "log.h"
#include "test_available.h"
using namespace std;
std::string URL = "http://192.168.1.200:11183/test_available";
int main(int argc,char *argv[])
{
if (argc < 2) {
printf("usage: %s URL\n", argv[0]);
return -1;
} else {
URL = argv[1];
}
std::string home = getenv("HOME");
std::string path = home + "/detect/targets.json";
std::string log_path = home + "/detect/log_web_client.txt";
tnet::Log g_log(log_path.c_str());
g_log.setLevel(tnet::Log::TRACE);
g_log.trace(__FILE__, __FUNCTION__, __LINE__,
"start");
std::map<std::string, int> state;
while (true) {
Json::FastWriter writer;
Json::Value root;
parse_json_stream(path, root);
std::size_t size = root.size();
for (int i = 0; i < size; ++i) {
std::string body = writer.write(root[i]);
std::string cmd = root[i]["restart_cmd"].asString();
std::string service = root[i]["service"].asString();
std::string tel = root[i]["tel"].asString();
int status = query_status(URL, {}, body);
g_log.trace(__FILE__, __FUNCTION__, __LINE__,
"service: %s, status: %d\n", service.c_str(), status);
if (status > 0) {
state[service]++;
system(cmd.c_str());
} else {
state[service] = 0;
}
if (state[service] > 1) {
g_log.warn(__FILE__, __FUNCTION__, __LINE__,
"service restart exception: %s, tel: %s\n", service.c_str(), tel.c_str());
string msg = service + " 重启异常,请尽快登录查看";
sms("192.168.30.17", tel.c_str(), msg.c_str(), nullptr);
}
}
sleep(120);
}
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/huang_jie2020/detect.git
git@gitee.com:huang_jie2020/detect.git
huang_jie2020
detect
detect
master

搜索帮助