- 新增websocket客户端和服务端实现 - 添加图片压缩工具和快速压缩脚本 - 实现学生信息处理相关API - 添加MQTT客户端和消息处理功能 - 更新.gitignore忽略更多文件类型 - 添加数据库操作工具和示例 - 实现多个测试脚本和工具类
41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
from flask import request
|
|
import subprocess
|
|
from flask import Flask, jsonify
|
|
from datetime import datetime
|
|
|
|
app = Flask(__name__)
|
|
|
|
def execute_command(cmd):
|
|
try:
|
|
result = subprocess.run(cmd, capture_output=True, text=True, timeout=30)
|
|
return {'success': result.returncode == 0, 'stdout': result.stdout, 'stderr': result.stderr}
|
|
except Exception as e:
|
|
return {'success': False, 'error': str(e)}
|
|
@app.before_request
|
|
def before_request():
|
|
current_time = datetime.now().isoformat()
|
|
print(f"Request: {request.method} {request.path} {current_time}")
|
|
|
|
@app.route('/health', methods=['GET'])
|
|
def health_check():
|
|
return jsonify({'status': 'healthy'})
|
|
|
|
@app.route('/nginx/reload', methods=['POST', 'GET'])
|
|
def reload_nginx():
|
|
result = execute_command(['/usr/local/nginx/sbin/nginx', '-s', 'reload'])
|
|
if result['success']:
|
|
return jsonify({'success': True, 'message': 'Nginx 重启成功',})
|
|
else:
|
|
return jsonify({'success': False, 'error': 'Nginx 重启失败', 'details': result.get('error') or result.get('stderr', '')}), 500
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host='127.0.0.1', port=5020, debug=False)
|
|
|
|
|
|
'''
|
|
acme.sh --install-cert -d www.xtleto.cn \
|
|
--cert-file /ce/www.xtleto.cn/cert.pem \
|
|
--key-file /ce/www.xtleto.cn/key.pem \
|
|
--fullchain-file /ce/www.xtleto.cn/fullchain.pem \
|
|
--reloadcmd "curl -s -X GET http://127.0.0.1:5031/nginx/reload"
|
|
''' |