feat: 添加多个功能模块和工具脚本
- 新增websocket客户端和服务端实现 - 添加图片压缩工具和快速压缩脚本 - 实现学生信息处理相关API - 添加MQTT客户端和消息处理功能 - 更新.gitignore忽略更多文件类型 - 添加数据库操作工具和示例 - 实现多个测试脚本和工具类
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
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"
|
||||
'''
|
||||
Reference in New Issue
Block a user