当前位置:首页>Linux>Linux监控平台演进:从Shell脚本到Python Flask集中管控

Linux监控平台演进:从Shell脚本到Python Flask集中管控

  • 2026-08-20 19:14:10
Linux监控平台演进:从Shell脚本到Python Flask集中管控

Linux监控平台演进:从Shell脚本到Python Flask集中管控

摘要:在日常运维中,你是否常面临“磁盘爆了才去清,服务挂了才去重启”的救火困境?Zabbix、Prometheus 虽好,但部署重、配置繁琐。本文将带你跳出舒适区,通过“Shell脚本优化 -> Python逻辑封装 -> Flask集中管控”的三级跳,构建一套轻量级、可视化的自动化运维平台。

详细内容请查阅下文。

一、基石构建:Shell脚本的“去伪存真”

运维脚本之所以不可靠,是因为只写了“正常逻辑”,忽略了“异常边界”。所以,在生产环境中,我们需要更严谨的判断。

1. 报警服务:拒绝重复造轮子

痛点:每个脚本里都写一遍SMTP配置,改个邮箱要改十遍。

优化方案:将报警功能封装为独立函数或公共脚本。

案例:

# send_alert.shMAIL_TO="17587257@qq.com"send_alert() {localsubject=$1localmessage=$2#生产环境建议配置 s-nail 或 sendmail 以提高成功率echo"$message" | mail -s "$subject" "$MAIL_TO"}

2. 负载监控:引入“动态阈值”与“防抖动”

痛点:固定阈值(如 load > 5)在32核机器上是正常,在2核机器上就是灾难。且瞬时尖峰容易引发误报。

优化方案:

动态阈值:阈值 = CPU核心数 × 1.5。

防抖动:连续3次检查均超标才报警。

案例:

# check_load_pro.shCORES=$(grep -c 'model name' /proc/cpuinfo)THRESHOLD=$(echo "$CORES * 1.5" | bc)LOAD=$(uptime | awk -F'load average:' '{print $2}' | awk '{print $1}' | tr -d ',')# 使用 bc 进行浮点数比较IS_HIGH=$(echo "$LOAD > $THRESHOLD" | bc)if [ "$IS_HIGH" -eq 1 ]; thensend_alert"【严重】系统负载过高" "当前: $LOAD (阈值: $THRESHOLD)"fi

备注:使用 awk 和 tr 处理 uptime 输出,去除逗号干扰。

3. 服务监控:从“发现”到“自愈”

痛点:监控发现了Nginx挂了,发邮件给运维,运维起床重启,业务已中断半小时。

优化方案:引入“看门狗”机制。发现停止 -> 尝试重启 -> 重启失败再报警。

案例:

# check_service_pro.shSERVICES=("nginx" "mysqld")for SERVICE in "${SERVICES[@]}"doif! systemctl is-active --quiet "$SERVICE"thensystemctlrestart "$SERVICE"sleep3#二次检查,若仍失败则报警if! systemctl is-active --quiet "$SERVICE"thensend_alert"【紧急】自愈失败" "服务 $SERVICE 重启失败,请人工介入!"fifidone

二、核心升级:Python赋能,统一监控逻辑

当我们需要汇总数据、跨服务器关联分析时,Python 的 psutil 库比 Shell 更高效、更跨平台。Psutil是一个跨平台的 Python 库,用于获取正在运行的进程和系统资源(如 CPU、内存、磁盘、网络)的使用信息,可以把它看作是 Python 中一个强大的“系统监控工具箱”。

架构设计

  • 采集层:使用 psutil 直接获取底层数据。

  • 逻辑层:处理报警频率抑制(去抖动)。

  • 展示层:生成 HTML 日报或推送企业微信。

案例:

# monitor_center.pyimport psutilclass SystemMonitor:defcheck_cpu_load(self):load_1,_, _ = psutil.getloadavg()cpu_count= psutil.cpu_count()load_percent= (load_1 / cpu_count) * 100ifload_percent > 150# 阈值 150%print(f"CPU负载过高: {load_1}")defcheck_disk_usage(self):#过滤掉 PermissionError,防止脚本中断forpartition in psutil.disk_partitions():try:usage= psutil.disk_usage(partition.mountpoint)ifusage.percent > 85:print(f"磁盘空间不足:{partition.mountpoint}")exceptPermissionError:continue

备注:Python 解决了 Shell 逻辑处理能力弱的问题,但单机脚本依然存在“信息孤岛”。我们需要一个中心化的“驾驶舱”。

三、架构演进:基于 Flask 构建集中式监控平台

当服务器达到几十上百台,逐台登录查看日志是不现实的。我们需要 Agent + Server 模式。

1. Agent端:让服务器“开口说话”

在被监控服务器部署轻量级 Flask 应用,暴露 API 接口。

关键优化点:

  • IP获取:socket.gethostbyname 常返回 127.0.0.1,需通过 UDP 连接获取真实出口 IP。

  • 安全性:增加 API Key 鉴权,防止任意重启服务;增加命令注入过滤。

案例:

# agent.pyfrom flask import Flask, jsonify, requestimport psutil, socket, subprocessapp = Flask(__name__)API_KEY = "your-secret-key-here" # 生产环境请使用环境变量def get_local_ip():s= socket.socket(socket.AF_INET, socket.SOCK_DGRAM)try:s.connect(("8.8.8.8",80))ip= s.getsockname()[0]exceptException:ip"127.0.0.1"finally:s.close()returnip@app.route('/api/status')def api_status():returnjsonify({"hostname":socket.gethostname(),"ip":get_local_ip(),"cpu_load":psutil.getloadavg()[0],"memory":psutil.virtual_memory().percent})@app.route('/api/restart_service/', methods=['POST'])def api_restart_service(service_name):#1. 鉴权ifrequest.headers.get('X-API-Key') != API_KEY:returnjsonify({"status""error""msg""未授权"}), 403#2. 防注入ifnot service_name.isalnum():returnjsonify({"status""error""msg""非法字符"}), 400#3. 执行subprocess.run(["sudo","systemctl""restart", service_name], timeout=10)returnjsonify({"status""success"})

2. Server端:打造统一仪表盘

监控中心定时轮询所有 Agent,汇总数据并展示。

关键优化点:

  • 并发采集:使用多线程防止某个节点超时卡死主程序。

  • 容错处理:节点离线时显示“离线”状态,而非报错。

案例:

# dashboard.pyfrom flask import Flask, render_template_stringimport requests, threading, timeapp = Flask(__name__)TARGET_SERVERS = ["http://192.168.1.10:5000/api/status""..."]MONITOR_DATA = []def fetch_data():whileTrue:temp_data= []forurl in TARGET_SERVERS:try:resp= requests.get(url, timeout=5)temp_data.append(resp.json())except:temp_data.append({"hostname":url, "error""节点离线"})globalMONITOR_DATAMONITOR_DATA= temp_datatime.sleep(10)# 启动后台采集线程threading.Thread(target=fetch_data, daemon=True).start()@app.route('/')def index():#此处省略HTML模板代码,核心逻辑是渲染 MONITOR_DATAreturnrender_template_string(HTML_TEMPLATE, hosts=MONITOR_DATA)

关键结论:通过 Agent + Server 架构,我们实现了从“单机脚本”到“集群管控”的跨越。新增服务器只需部署 Agent,无需修改中心代码,扩展性极强。

四、系统的启动与使用

1.启动系统

执行指令# python3 app.py启动系统

2.使用系统

第一步:使用浏览器访问https://172.16.27.49/ 查看平台首页(这里有两台监控主机)。如下图

第二步:切换【服务器管理】页面,查看已经添加的服务器列表

添加监控服务器。如下图

保存后回到监控服务器列表。(这里已经有三台监控主机)。如下图

保存后返回监控平台首页。如下图

第四步:切换【系统告警】页面。如下图

第五步:切换【AI智能体】页面。如下图

第六步:切换【帮助中心】页面。如下图

五、避坑指南与经验总结

在实施上述方案时,请务必注意以下生产环境细节:

1.权限管理

Agent 执行 systemctl restart 需要 root 权限。建议根据实际需要配置/etc/sudoers 文件,仅允许特定用户无密码重启特定服务,避免赋予脚本过高的系统权限。

2.依赖安装

  • Agent 端需安装:pip3 install flask psutil

  • 若安装 psutil 报错,请先执行 yum install -y gcc python3-devel。

3.后台运行

使用 nohup python3 agent.py > nohup.out 2>&1 & 命令启动 Agent服务。

4.HTTPS加密

Python程序涉及敏感数据,建议在生产环境务必配置 SSL 证书(ssl_context),防止数据明文传输。

📢 总结与分享

纸上得来终觉浅,绝知此事要躬行。Shell 是 Linux 的敲门砖,而 Python 则是赋予其智能的翅膀。希望大家在掌握这些基础指令后,能着手去设计属于自己的监控平台,在一次次的调试与优化中,体会驾驭 Linux 系统的真正乐趣与成就感。

如果本文对您有帮助,欢迎:

1.👍 点赞,鼓励更多Python实战内容。

2.💬 留言,交流你在系统运维中遇到的痛点。

3.🔄 转发,希望大家都能够在Linux系统中打造属于自己的自动化监控平台,以提高团队的工作效率。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 19:59:37 HTTP/2.0 GET : https://f.mffb.com.cn/a/507782.html
  2. 运行时间 : 0.222761s [ 吞吐率:4.49req/s ] 内存消耗:4,590.12kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=2e7abc22d20541b98e5b8258a31fba16
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001189s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001808s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.002240s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002422s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001723s ]
  6. SELECT * FROM `set` [ RunTime:0.000684s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001899s ]
  8. SELECT * FROM `article` WHERE `id` = 507782 LIMIT 1 [ RunTime:0.002065s ]
  9. UPDATE `article` SET `lasttime` = 1787313577 WHERE `id` = 507782 [ RunTime:0.024181s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000761s ]
  11. SELECT * FROM `article` WHERE `id` < 507782 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001083s ]
  12. SELECT * FROM `article` WHERE `id` > 507782 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.001109s ]
  13. SELECT * FROM `article` WHERE `id` < 507782 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001599s ]
  14. SELECT * FROM `article` WHERE `id` < 507782 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.017814s ]
  15. SELECT * FROM `article` WHERE `id` < 507782 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.004587s ]
0.226681s