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
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() |