当前位置:首页>python>投入1小时,节省100小时:Python自动化实战指南

投入1小时,节省100小时:Python自动化实战指南

  • 2026-08-18 23:11:38
投入1小时,节省100小时:Python自动化实战指南
Python自动化实战指南
摘要:在日常运维和开发工作中,重复性操作十分常见——例如定期处理数据、检查服务状态、批量发送通知等。这类任务如果完全依赖人工,一方面耗时且效率不高,另一方面随着操作次数增加,出错的风险也会明显上升。将稳定、固定的操作流程编写为可执行程序,是提升工作效率、保障执行质量的有效方式。本文介绍一套将日常重复性工作转化为Python脚本的实践方法,具体分为三个步骤:首先固化操作流程,明确每一步做什么;然后将可变信息(如文件路径、收件人、阈值等)提取为参数,与代码逻辑分离;最后通过定时或触发方式实现自动化执行。为了便于理解,文章结合三个常见的运维和开发场景,完整展示从需求梳理到脚本落地的实现过程。详细内容请参见下文。

一、环境准备:Linux系统Python环境部署

在Linux系统上,Python环境通常已经预装。以下步骤将指导你如何检查、安装并配置一个可直接用于编写自动化脚本的Python环境。

1.检查Python版本

首先,在终端中执行以下命令,检查系统是否已安装Python 3及其版本。
执行指令#python3 --version
大多数现代Linux发行版都预装了Python 3。如果未安装或版本过低(建议3.6以上),请使用系统包管理器进行安装。
  • 对于 Ubuntu/Debian 系统:

sudo apt install python3

  • 对于 CentOS/RHEL 系统:

sudo yum install python3

2.安装pip包管理器

pip 是Python的官方包管理工具,用于从Python包索引及其他镜像源中自动完成软件包的搜索、下载、安装、升级与卸载操作,并支持依赖关系解析与版本约束管理。
  • 对于 Ubuntu/Debian 系统:

sudo apt install python3-pip

  • 对于 CentOS/RHEL 系统:

sudo yum install python3-pip

3.安装依赖库

环境准备就绪后,你就可以使用 pip3 来安装脚本运行所需的库。例如,如果脚本需要 requests 库来发送网络请求,可以执行:

pip3 install requests

备注:上文提及的Python包索引(PyPI,Python Package Index)是Python官方维护的第三方软件包中央仓库,面向开发者提供统一的包发布、版本管理与分发服务。pip等包管理工具通过标准网络协议从PyPI检索并安装所需依赖。完成上述环境配置后,你的Python运行环境已就绪,即可开始编写与执行自动化脚本。

二、核心理念:自动化的“三步走”方法论

在编写任何代码之前,建立一个正确的思维框架至关重要。这套方法论能确保你的程序从一开始就具备良好的扩展性和健壮性。

1.固定化 (固化流程)

将重复操作的每一个步骤用自然语言详细记录下来,穷尽所有步骤。这是后续代码编写的蓝图。
例如:备份数据库 → 连接服务器 → 切换用户 → 执行导出 → 压缩文件 → 按日期命名 → 清理旧备份。

2.参数化 (抽象变量)

观察流程中哪些部分会变化,将它们抽象为变量或命令行参数。这是让程序从“做一件事”进化为“处理一类事”的关键。
例如:环境名称(开发/测试/生产)、备份保留天数、文件路径等。

3.自动化 (增强健壮性)

在自动化执行基础上,需进一步引入健壮性保障机制,以确保程序在长期无人值守运行中的稳定性和可维护性。具体措施包括:
  • 错误处理:针对网络超时、文件缺失、权限不足等可预见的异常情形,定义明确的捕获与恢复策略(如重试、降级、跳过),避免程序因单点故障而异常终止。

  • 日志记录:在关键执行节点记录结构化日志信息,包括操作时间、执行状态、输入输出参数及异常堆栈,为事后审计、问题定位与性能分析提供可追溯的依据。

  • 前置检查:在执行主逻辑前,验证运行环境依赖(如文件存在性、网络连通性、必需参数完整性),确保前置条件满足后方可继续,防止因初始状态不合法导致执行失败或数据污染。

  • 后置清理:在程序正常退出或异常终止时,主动释放临时文件、数据库连接、网络句柄等系统资源,避免资源泄露累积影响系统稳定性。

通过上述机制,程序可具备自容错能力与可观测性,在异常发生时能够自动尝试恢复或及时触发告警通知,从而实现真正意义上的无人值守自动化运行。
下面,我们将通过三个实战案例,逐一演示这套方法论的应用。

三、实战案例:三个常见的Python自动化案例

细纹将通过日志分析、数据库维护与应用部署三个高频实战案例,全面展示了如何将日常繁琐工作转化为高效、可靠的自动化程序。

1.日志分析自动化

问题描述:运维团队每天需要登录多台服务器,手动检查日志文件,统计错误数量、分析访问IP等。处理一个日志文件可能需要15分钟,10台服务器就是一整个上午的重复劳动。
程序设计:我们需要一个“万能日志分析器”,输入日志文件路径,自动输出日志的总行数、各类型错误统计、访问量最高的Top N IP地址、HTTP状态码分布等。
核心实现:以下Python脚本将解决日志分析的三个根本痛点:
  • 从“靠经验”到“靠规则”:通过正则表达式,我们将运维专家头脑中“哪些关键词代表不同级别异常”的判断标准,编码为可重复执行的机器规则。

  • 从“单点查询”到“全景诊断”:将总行数、错误频次、IP访问等原本需要多次独立执行的命令组合为一次性输出的完整报告。

  • 从“事后复盘”到“实时监控”:利用 tail -f 配合Python脚本,可以实现实时捕获异常并告警,从被动排障转向主动防御。

Python程序:
#创建Python程序analyze_log.pyimport reimport sysfrom collections import Counterdef analyze_log(log_file_path):error_pattern= re.compile(r'(ERROR|FATAL|Exception)')ip_pattern= re.compile(r'\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b')error_counter= Counter()ip_counter= Counter()total_lines= 0try:withopen(log_file_path, 'r', encoding='utf-8', errors='ignore'as f:forline in f:total_lines+= 1#统计错误errors= error_pattern.findall(line)error_counter.update(errors)#统计IPips= ip_pattern.findall(line)ip_counter.update(ips)exceptFileNotFoundError:print(f"错误:文件{log_file_path} 未找到。")returnprint(f"{'='*20}日志分析报告 {'='*20}")print(f"文件:{log_file_path}")print(f"总行数:{total_lines}")print(f"\n【错误统计】")forerror_type, count in error_counter.items():print(f"{error_type}次数: {count}")print(f"\n【访问量Top 5 IP】")forip, count in ip_counter.most_common(5):print(f"{count}{ip}")if __name__ == "__main__":iflen(sys.argv) > 1:log_file= sys.argv[1]else:log_file= input("请输入日志文件路径: ")analyze_log(log_file)
程序运行结果如下:

2.数据库维护自动化

问题描述:数据库需要每日备份、定期清理。以往由DBA手动执行,但人为因素难以避免。曾有一次,因为忘记清理旧备份,导致磁盘写满,引发生产事故。
程序设计:数据库维护脚本必须具备“防御性设计”:备份前检查磁盘空间、备份后验证文件完整性、清理前先列出待删除文件清单、所有操作记录详细日志。
核心实现:这个脚本重构了传统备份流程的三大薄弱环节:
  • 从“选择性备份”到“全量兜底”:自动发现所有业务数据库进行备份,避免了人工维护库名单时可能出现的遗漏风险。

  • 从“备份即完成”到“备份即验证”:在备份完成后,立即校验文件完整性,杜绝了“以为有备份、实际用不了”的灾难场景。

  • 从“直接删除”到“确认后清理”:通过先展示待删除清单,再等待人工确认后才执行删除,为“误删备份”设置了最后一道安全闸门。

Python程序:
import subprocessimport osfrom datetime import datetime--- 配置参数 ---BACKUP_DIR = "/data/backup/mysql"MYSQL_USER = "root"MYSQL_PASSWORD = "your_password"def backup_all_to_single_file():print(f"{'='*20}开始全量备份 {'='*20}")os.makedirs(BACKUP_DIR,exist_ok=True)#1. 生成带时间戳的备份文件名timestamp= datetime.now().strftime("%Y%m%d_%H%M%S")backup_file= os.path.join(BACKUP_DIR, f"all_databases_{timestamp}.sql.gz")print(f"正在将所有数据库打包备份至:{backup_file}")#2. 核心命令:使用 --all-databases 导出所有库表,并通过管道直接压缩#--single-transaction: 保证 InnoDB 表备份时数据一致性,不锁表#--routines --triggers: 确保存储过程和触发器也被备份cmd_dump= (f"mysqldump-u{MYSQL_USER} -p{MYSQL_PASSWORD} "f"--all-databases--single-transaction --routines --triggers "f"|gzip > {backup_file}")try:#3. 执行备份命令subprocess.run(cmd_dump,shell=True, check=True)#4. 验证备份文件完整性(检查文件大小是否大于0)file_size= os.path.getsize(backup_file)iffile_size > 0:print(f"✅全量备份成功!文件大小: {file_size} 字节")else:print(f"❌备份文件为空,请检查数据库连接或权限!")os.remove(backup_file)清理空文件exceptsubprocess.CalledProcessError as e:print(f"❌备份执行失败!错误信息: {e}")ifos.path.exists(backup_file):os.remove(backup_file)失败时清理损坏的文件if __name__ == "__main__":backup_all_to_single_file()
程序运行结果如下:
备注:上述数据库的备份脚本使用 --all-databases 参数:让 mysqldump 一次性导出所有库表。然后再使用 gzip 管道压缩:直接将 mysqldump 的输出流通过管道 (|) 传递给 gzip,避免生成巨大的中间 .sql 文件。

3.应用部署自动化

问题描述:每次上线新版本,流程繁琐且充满风险:停止服务 → 备份当前版本 → 拉取新代码 → 更新配置 → 重启服务 → 健康检查 → 失败则回滚。任何一个环节出错都可能导致服务中断。
程序设计:部署脚本的核心理念是“原子性”和“可回滚”。通过软链接实现版本切换的原子操作;通过保留历史版本实现一键回滚;通过健康检查自动判断部署成败。
核心实现:这个脚本解决了应用部署过程中的三大致命风险:
  • 从“停服更新”到“零停机切换”:利用软链接的原子切换机制,将版本切换瞬间完成,彻底消除了服务中断窗口。

  • 从“人工判断”到“自动决策”:将健康检查结果与自动回滚机制联动。一旦新版本启动失败,系统可自动恢复到上一个稳定版本,将故障影响降到最低。

  • 从“操作无痕”到“版本可溯”:在部署前备份当前版本,并记录版本号,为每一次发布建立完整的审计轨迹。

Python程序:
import osimport shutilimport subprocessimport sys--- 配置参数 ---APP_DIR = "/var/www/myapp"当前运行的应用目录(是一个软链接)REPO_DIR = "/opt/repos/myapp"代码仓库目录BACKUP_ROOT = "/opt/backups/myapp"备份根目录NEW_VERSION_DIR = "/opt/deploy/myapp_new"新版本暂存目录def deploy():print(f"{'='*20}开始部署 {'='*20}")#1. 备份当前版本current_version= os.readlink(APP_DIR) if os.path.islink(APP_DIR) else "initial"backup_dir= os.path.join(BACKUP_ROOT, f"backup_{current_version}")print(f"备份当前版本{current_version} 到 {backup_dir}")shutil.copytree(APP_DIR,backup_dir)#2. 拉取新代码 (此处简化为复制)print("准备新版本代码...")ifos.path.exists(NEW_VERSION_DIR):shutil.rmtree(NEW_VERSION_DIR)shutil.copytree(REPO_DIR,NEW_VERSION_DIR)#3. 执行构建/安装等步骤 (示例)#subprocess.run(["npm", "install"], cwd=NEW_VERSION_DIR, check=True)#4. 原子切换 (核心)#创建一个新的临时链接temp_link= APP_DIR + "_new"print(f"原子切换到新版本...")os.symlink(NEW_VERSION_DIR,temp_link)#原子地重命名链接os.rename(temp_link,APP_DIR)#5. 健康检查print("执行健康检查...")#这里用一个简单的命令模拟,实际应检查服务端口或HTTP接口health_check_cmd= "curl -f http://localhost:8080/health"try:subprocess.run(health_check_cmd,shell=True, check=True, timeout=10)print("✅健康检查通过,部署成功!")#清理旧备份(可选)except(subprocess.CalledProcessError, subprocess.TimeoutExpired):print("❌健康检查失败,开始回滚...")rollback(backup_dir)def rollback(backup_dir):ifnot os.path.exists(backup_dir):print("回滚失败:备份目录不存在!")returnprint(f"回滚到版本{backup_dir}...")temp_link= APP_DIR + "_rollback"os.symlink(backup_dir,temp_link)os.rename(temp_link,APP_DIR)print("✅回滚成功!")if __name__ == "__main__":iflen(sys.argv) > 1 and sys.argv[1] == "rollback":#实现回滚逻辑,需要指定回滚到哪个备份passelse:deploy()
重要价值:这个脚本将“每次新版本上线的这种如履薄冰的工作”变成了“安全、标准、可重复的自动化流程”。它不仅将发布耗时从20分钟缩短到2分钟,更重要的是,通过自动回滚机制将变更风险控制在30秒的恢复窗口内。

四、经验总结

Shell脚本或Python程序,本质上并非简单命令的堆砌或代码的罗列,而是一种将隐性的经验知识、既定的操作规则以及经过验证的最佳实践,进行显性化、标准化和工具化固化的载体。它让个人能力转化为可复用、可传承的组织资产。
遵循“固定化—参数化—自动化”这一递进式方法论,可以帮助你系统性地完成从人工操作到自动化工具的转变:
  • 固定化:首先将零散、模糊的重复操作梳理为清晰、稳定的标准作业流程,明确每一步的输入、输出和执行条件。

  • 参数化:再将流程中可变的数据(如路径、账号、阈值)抽取为独立配置,实现逻辑与数据的分离,使脚本具备灵活适配不同场景的能力。

  • 自动化:最后通过定时调度、事件触发或接口调用等方式,让程序在无需人工干预的情况下按既定规则自主运行。

掌握了这套方法,你便能够将日常工作中那些耗时、繁琐、重复且容易出错的任务,逐步转化为高效、可靠、可全天候无人值守运行的自动化工具。这不仅能够显著提升工作效率与执行质量,更能将你从低价值的重复劳动中解放出来,把宝贵的时间和精力聚焦于更具创造性、更有价值的核心工作上去。
📢互动与分享

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

1.👍点赞,让我知道您的认可。
2.💬留言,说说您最感兴趣的模块或任何建议。
3.🔄转发,分享给您的技术团队或社区朋友,提升运维效率。
4.👉关注我,即可查看并下载完整项目代码,亲手打造属于您的自己的自动化运维工具。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 13:36:45 HTTP/2.0 GET : https://f.mffb.com.cn/a/508419.html
  2. 运行时间 : 0.273029s [ 吞吐率:3.66req/s ] 内存消耗:4,448.10kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9b79e8735c9b73a9b12c6bf9e2e602e7
  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.000333s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000578s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000257s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002084s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000490s ]
  6. SELECT * FROM `set` [ RunTime:0.038024s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000884s ]
  8. SELECT * FROM `article` WHERE `id` = 508419 LIMIT 1 [ RunTime:0.017205s ]
  9. UPDATE `article` SET `lasttime` = 1787290605 WHERE `id` = 508419 [ RunTime:0.017263s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000380s ]
  11. SELECT * FROM `article` WHERE `id` < 508419 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.010366s ]
  12. SELECT * FROM `article` WHERE `id` > 508419 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.036060s ]
  13. SELECT * FROM `article` WHERE `id` < 508419 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.014212s ]
  14. SELECT * FROM `article` WHERE `id` < 508419 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.006417s ]
  15. SELECT * FROM `article` WHERE `id` < 508419 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.057866s ]
0.274502s