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