You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
3.5 KiB

import os
from flask import Blueprint, request, jsonify
import app.cpu_usage as cpu_usage
import app.io_usage as io_usage
import app.memory_usage as memory_usage
import app.network as network_usage
import app.login_info as login_info
import app.request_info as request_info
import app.imitate_thread as imitate_thread
import app.sys_clean as sys_clean
import app.sys_control as sys_control
from dotenv import load_dotenv
load_dotenv()
route_bp = Blueprint('route', __name__)
cpu_alarm_threshold = float(os.getenv('CPU_ALARM_THRESHOLD', '70'))
io_alarm_threshold = float(os.getenv('IO_ALARM_THRESHOLD', '70'))
memory_alarm_threshold = float(os.getenv('MEMORY_ALARM_THRESHOLD', '70'))
# 资源使用情况
@route_bp.route('/api/sys/resource', methods=['GET'])
def get_resource():
cpu_percent = cpu_usage.get_cpu_percent()
io_percent = io_usage.get_io_percent()
memory_percent = memory_usage.get_memory_percent()
online = login_info.get_online_size()
status = 0
if cpu_percent > cpu_alarm_threshold or memory_percent > memory_alarm_threshold or io_percent > io_alarm_threshold:
status = 1
return jsonify({
'status': status,
'online': online,
'cpu_percent': cpu_percent,
'io_percent': io_percent,
'memory_percent': memory_percent,
'cpu_alarm_threshold': cpu_alarm_threshold,
'io_alarm_threshold': io_alarm_threshold,
'memory_alarm_threshold': memory_alarm_threshold,
})
# 获取过去12小时网络传输速度
@route_bp.route('/api/sys/network_speed', methods=['GET'])
def get_network():
return jsonify({"network_speed": network_usage.get_last_12_hours_speed()})
# 最近登录信息
@route_bp.route('/api/sys/login_info', methods=['GET'])
def get_login_info():
page_index = int(request.args.get('page_index', 1))
page_size = int(request.args.get('page_size', 10))
data = login_info.get_recent_login_info(page_index, page_size)
return jsonify(data)
# 请求信息
@route_bp.route('/api/sys/request_info', methods=['GET'])
def get_request_info():
page_index = int(request.args.get('page_index', 1))
page_size = int(request.args.get('page_size', 10))
data = request_info.get_request_info(page_index, page_size)
return jsonify(data)
# 病毒列表
@route_bp.route('/api/sys/virus_get', methods=['GET'])
def get_virus():
return imitate_thread.get_virus_queue_data()
# 清理病毒
@route_bp.route('/api/sys/virus_clean', methods=['POST'])
def delete_virus():
names_list = request.json.get('names_list', [])
return imitate_thread.delete_virus_queue_data(names_list)
# 漏洞列表
@route_bp.route('/api/sys/bugs_get', methods=['GET'])
def get_bugs():
return imitate_thread.get_bugs_queue_data()
# 清理漏洞
@route_bp.route('/api/sys/bugs_clean', methods=['POST'])
def delete_bugs():
names_list = request.json.get('names_list', [])
return imitate_thread.delete_bugs_queue_data(names_list)
# 垃圾文件数量
@route_bp.route('/api/sys/junk_files', methods=['GET'])
def get_junk_file():
return sys_clean.get_junk_file()
# 清理垃圾文件
@route_bp.route('/api/sys/clean_junk', methods=['POST'])
def clean_junk_file():
filenames = request.json.get('file_list', [])
return sys_clean.clean_junk_file(filenames)
# cpu跑满
@route_bp.route('/api/sys/cpu_full', methods=['GET'])
def execute_cpu_full():
return sys_control.execute_cpu_full_script()
# 内存跑满
@route_bp.route('/api/sys/memory_full', methods=['GET'])
def execute_memory_full():
return sys_control.execute_memory_full_script()