当前位置:首页>python>用ChatGPT帮你写Python自动化运维脚本(完整演示)

用ChatGPT帮你写Python自动化运维脚本(完整演示)

  • 2026-06-29 23:49:03
用ChatGPT帮你写Python自动化运维脚本(完整演示)

用ChatGPT帮你写Python自动化运维脚本(完整演示)

作为一名运维工程师,你是否还在手动登录服务器、一条条执行命令?是否还在深夜对着报错信息发呆?是时候让AI替你干活了!


前言:AI + 运维 = 效率革命

2025年之后,越来越多的运维工程师开始把ChatGPT当作自己的"编程助手"。它不仅能写代码,还能帮你调试、优化、加注释、写文档。

今天我用完整的实战演示,带你看清楚:怎么用ChatGPT一步步生成可用的Python运维脚本

全文涵盖4个真实运维场景:

  1. 批量检测服务器存活状态
  2. 自动清理日志文件
  3. 磁盘使用率预警
  4. 定时备份配置文件

每个场景都有:提示词 → ChatGPT输出 → 实际代码 → 运行效果,学完即用!


第一步:学会写对"提示词"

很多人用ChatGPT写脚本,写出来的代码要么太简单,要么根本跑不了。问题不在AI,在于你没说清楚需求。

一个好的运维脚本提示词,需要包含以下要素:

【角色】你是一名有10年经验的Linux运维工程师【任务】帮我写一个Python脚本,实现:[具体功能]【环境】Python 3.x,运行在CentOS 7上【要求】  - 加上详细注释  - 有异常处理  - 输出结果带时间戳  - 代码风格符合PEP8规范

记住这个模板,后面每个场景都用它!


场景一:批量检测服务器存活状态

我的提示词

你是一名有10年经验的Linux运维工程师。帮我写一个Python脚本,功能是:批量ping一组IP地址,判断哪些服务器在线、哪些离线,结果输出到控制台并保存到check_result.txt文件中。要求:- 支持从servers.txt文件中读取IP列表(每行一个IP)- 使用多线程,提高检测速度- 输出格式:[时间戳] IP地址 - 在线/离线- 有异常处理- 代码注释详细

ChatGPT生成的脚本

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""批量服务器存活检测脚本功能:从文件读取IP列表,多线程ping检测,结果输出到文件作者:ChatGPT生成 / 运维优化"""import osimport subprocessimport threadingfrom datetime import datetime# 结果存储列表(线程安全需加锁)results = []lock = threading.Lock()defping_host(ip):"""    ping单个IP地址,判断是否在线    :param ip: 目标IP地址    """try:# Windows用-n,Linux/Mac用-c        param = "-n"if os.name == "nt"else"-c"        command = ["ping", param, "1""-W""1", ip]# subprocess.run执行命令,capture_output捕获输出        result = subprocess.run(            command,            capture_output=True,            text=True,            timeout=3        )        timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")if result.returncode == 0:            status = "✅ 在线"else:            status = "❌ 离线"        line = f"[{timestamp}{ip} - {status}"# 加锁,防止多线程写入冲突with lock:            results.append(line)            print(line)except subprocess.TimeoutExpired:        timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")        line = f"[{timestamp}{ip} - ⚠️ 超时"with lock:            results.append(line)            print(line)except Exception as e:        timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")        line = f"[{timestamp}{ip} - ❌ 错误: {e}"with lock:            results.append(line)            print(line)defmain():"""主函数:读取IP列表,创建线程池并发检测"""# 从文件读取IP列表try:with open("servers.txt""r", encoding="utf-8"as f:            ip_list = [line.strip() for line in f if line.strip()]except FileNotFoundError:        print("❌ 错误:servers.txt 文件不存在!")return    print(f"📋 共读取到 {len(ip_list)} 个IP,开始检测...\n")# 创建线程列表    threads = []for ip in ip_list:        t = threading.Thread(target=ping_host, args=(ip,))        threads.append(t)        t.start()# 等待所有线程完成for t in threads:        t.join()# 将结果写入文件with open("check_result.txt""w", encoding="utf-8"as f:        f.write("\n".join(results))    print(f"\n✅ 检测完成!结果已保存到 check_result.txt")if __name__ == "__main__":    main()

使用方法

  1. 创建 servers.txt,每行写一个IP:
192.168.1.1192.168.1.2192.168.1.1008.8.8.8
  1. 运行脚本:python check_server.py

  2. 查看结果文件 check_result.txt


场景二:自动清理过期日志文件

日志积累是运维的老大难。手动删?容易误删。定时任务?写起来麻烦。用ChatGPT写一个带保护机制的清理脚本!

我的提示词

帮我写一个Python脚本,自动清理/var/log目录下超过7天的.log文件。要求:- 删除前先打印要删除的文件列表,让用户确认- 支持"试运行"模式(dry-run),只显示不删除- 记录操作日志到cleanup.log- 异常处理完善

ChatGPT生成的脚本

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""日志文件自动清理脚本功能:清理指定目录下超过N天的.log文件,支持试运行模式"""import osimport timeimport loggingfrom datetime import datetime, timedeltafrom pathlib import Path# 配置参数(可修改)LOG_DIR = "/var/log"# 要清理的目录DAYS_TO_KEEP = 7# 保留天数DRY_RUN = True# True=试运行模式(不实际删除)OPERATION_LOG = "cleanup.log"# 操作记录文件# 配置日志记录logging.basicConfig(    filename=OPERATION_LOG,    level=logging.INFO,    format="%(asctime)s - %(levelname)s - %(message)s",    datefmt="%Y-%m-%d %H:%M:%S")defget_expired_logs(directory, days):"""    获取超过指定天数的.log文件列表    :param directory: 目标目录    :param days: 保留天数    :return: 过期文件列表(Path对象)    """    expired_files = []    cutoff_time = time.time() - days * 86400# 86400秒 = 1天try:        log_path = Path(directory)# 递归查找所有.log文件for log_file in log_path.rglob("*.log"):if log_file.is_file():# 获取文件最后修改时间                file_mtime = log_file.stat().st_mtimeif file_mtime < cutoff_time:                    expired_files.append(log_file)except PermissionError as e:        print(f"⚠️ 权限不足,无法访问部分目录:{e}")        logging.warning(f"权限不足:{e}")except Exception as e:        print(f"❌ 扫描目录时出错:{e}")        logging.error(f"扫描错误:{e}")return expired_filesdefclean_logs(expired_files, dry_run=True):"""    清理过期日志文件    :param expired_files: 要清理的文件列表    :param dry_run: 是否为试运行模式    """ifnot expired_files:        print("✅ 没有找到需要清理的日志文件!")return# 计算总大小    total_size = sum(f.stat().st_size for f in expired_files)    total_mb = total_size / 1024 / 1024    print(f"\n📋 发现 {len(expired_files)} 个过期日志文件,共占 {total_mb:.2f} MB:")    print("-" * 60)for f in expired_files:        size_kb = f.stat().st_size / 1024        mtime = datetime.fromtimestamp(f.stat().st_mtime).strftime("%Y-%m-%d %H:%M")        print(f"  {f}  [{size_kb:.1f} KB, 修改时间: {mtime}]")    print("-" * 60)if dry_run:        print(f"\n🔍 [试运行模式] 以上文件将被删除(实际未删除)")        print("💡 将 DRY_RUN = False 后重新运行,即可执行实际删除")        logging.info(f"试运行:发现 {len(expired_files)} 个过期文件,共 {total_mb:.2f} MB")return# 实际删除前再次确认    confirm = input(f"\n⚠️ 确认删除以上 {len(expired_files)} 个文件?(输入 yes 确认): ")if confirm.lower() != "yes":        print("❌ 已取消删除操作")return# 执行删除    deleted_count = 0    failed_count = 0for f in expired_files:try:            f.unlink()  # 删除文件            print(f"  ✅ 已删除:{f}")            logging.info(f"已删除:{f}")            deleted_count += 1except Exception as e:            print(f"  ❌ 删除失败:{f} - {e}")            logging.error(f"删除失败:{f} - {e}")            failed_count += 1    print(f"\n✅ 完成!成功删除 {deleted_count} 个文件,失败 {failed_count} 个")    logging.info(f"清理完成:成功 {deleted_count},失败 {failed_count}")defmain():    print(f"🧹 日志清理脚本启动")    print(f"📂 目标目录:{LOG_DIR}")    print(f"📅 保留最近 {DAYS_TO_KEEP} 天的日志")    print(f"🔍 运行模式:{'试运行(不删除)'if DRY_RUN else'实际删除'}\n")    logging.info(f"脚本启动 - 目录:{LOG_DIR}, 保留天数:{DAYS_TO_KEEP}, 试运行:{DRY_RUN}")# 获取过期文件列表    expired_files = get_expired_logs(LOG_DIR, DAYS_TO_KEEP)# 执行清理    clean_logs(expired_files, DRY_RUN)if __name__ == "__main__":    main()

场景三:磁盘使用率预警

磁盘快满了没人知道,直到系统崩了才发现——这种事运维人都经历过。来一个自动预警脚本,磁盘超80%自动发警报!

提示词

帮我写一个Python脚本,监控Linux服务器所有磁盘分区的使用率,当使用率超过80%时,发送预警信息(先打印到控制台,后续可扩展为发邮件/企业微信)。需要:- 显示所有分区的使用情况- 支持自定义告警阈值- 格式化输出,美观易读

ChatGPT生成的脚本

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""磁盘使用率监控预警脚本功能:检测所有磁盘分区使用率,超过阈值时预警"""import shutilimport osfrom datetime import datetime# 告警阈值(百分比)ALERT_THRESHOLD = 80defget_disk_usage():"""获取所有磁盘分区的使用情况"""    disk_info = []# 读取/proc/mounts获取所有挂载点try:with open("/proc/mounts""r"as f:            mounts = f.readlines()except FileNotFoundError:# Windows兼容处理import string        mounts = [f"{d}:\\"for d in string.ascii_uppercase if os.path.exists(f"{d}:\\")]for mount in mounts:try:                usage = shutil.disk_usage(mount)                total_gb = usage.total / (1024**3)                used_gb = usage.used / (1024**3)                free_gb = usage.free / (1024**3)                percent = (usage.used / usage.total) * 100                disk_info.append({"mount": mount,"total": total_gb,"used": used_gb,"free": free_gb,"percent": percent                })except:passreturn disk_info# Linux处理    checked = set()for line in mounts:        parts = line.split()if len(parts) < 2:continue        mount_point = parts[1]# 跳过虚拟文件系统if any(skip in mount_point for skip in ["/proc""/sys""/dev""/run"]):continueif mount_point in checked:continue        checked.add(mount_point)try:            usage = shutil.disk_usage(mount_point)            total_gb = usage.total / (1024**3)            used_gb = usage.used / (1024**3)            free_gb = usage.free / (1024**3)            percent = (usage.used / usage.total) * 100            disk_info.append({"mount": mount_point,"total": total_gb,"used": used_gb,"free": free_gb,"percent": percent            })except (PermissionError, OSError):passreturn disk_infodefprint_disk_report(disk_info):"""    格式化输出磁盘使用报告    :param disk_info: 磁盘信息列表    """    timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")    print("=" * 65)    print(f"  磁盘使用率报告  |  检测时间:{timestamp}")    print("=" * 65)    print(f"{'挂载点':<20}{'总容量':>8}{'已使用':>8}{'剩余':>8}{'使用率':>7}{'状态'}")    print("-" * 65)    alerts = []for disk in disk_info:# 根据使用率设置状态标识if disk["percent"] >= ALERT_THRESHOLD:            status = "🚨 告警"            alerts.append(disk)elif disk["percent"] >= 70:            status = "⚠️ 注意"else:            status = "✅ 正常"# 使用率进度条        bar_len = 20        filled = int(bar_len * disk["percent"] / 100)        bar = "█" * filled + "░" * (bar_len - filled)        print(f"{disk['mount']:<20} "f"{disk['total']:>6.1f}G "f"{disk['used']:>6.1f}G "f"{disk['free']:>6.1f}G "f"{disk['percent']:>6.1f}% "f"{status}")        print(f"  [{bar}{disk['percent']:.1f}%")    print("=" * 65)# 打印告警信息if alerts:        print(f"\n🚨 【磁盘告警】发现 {len(alerts)} 个分区使用率超过 {ALERT_THRESHOLD}%!")for disk in alerts:            print(f"   ⚠️  {disk['mount']} 使用率已达 {disk['percent']:.1f}%,剩余空间仅 {disk['free']:.1f}GB!")        print("\n💡 建议立即清理日志、归档历史数据,或扩容磁盘!")else:        print(f"\n✅ 所有分区使用率正常(阈值:{ALERT_THRESHOLD}%)")defmain():    disk_info = get_disk_usage()if disk_info:        print_disk_report(disk_info)else:        print("❌ 无法获取磁盘信息")if __name__ == "__main__":    main()

场景四:定时备份配置文件

生产环境的配置文件是命根子。用Python写一个自动备份脚本,每次备份自动打包+加时间戳!

提示词

帮我写一个Python脚本,自动备份指定的配置文件到backup目录,要求:- 支持备份多个文件/目录- 自动打包成tar.gz格式,文件名包含时间戳- 只保留最近5个备份,自动删除旧的- 备份成功后打印摘要信息

ChatGPT生成的脚本

#!/usr/bin/env python3# -*- coding: utf-8 -*-"""配置文件自动备份脚本功能:将指定文件/目录打包备份,自动管理备份数量"""import osimport tarfileimport shutilfrom datetime import datetimefrom pathlib import Path# ========== 配置区域(按需修改)==========# 要备份的文件/目录列表BACKUP_SOURCES = ["/etc/nginx/nginx.conf","/etc/mysql/my.cnf","/etc/ssh/sshd_config",# "/home/user/app/config",  # 可以是目录]# 备份存放目录BACKUP_DIR = "/backup/configs"# 最多保留几个备份MAX_BACKUPS = 5# ========================================defcreate_backup(sources, backup_dir):"""    创建备份文件(tar.gz格式)    :param sources: 要备份的文件/目录列表    :param backup_dir: 备份存放目录    :return: 备份文件路径    """# 确保备份目录存在    Path(backup_dir).mkdir(parents=True, exist_ok=True)# 生成带时间戳的备份文件名    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")    backup_filename = f"config_backup_{timestamp}.tar.gz"    backup_path = os.path.join(backup_dir, backup_filename)    print(f"📦 开始备份,目标文件:{backup_filename}")    backed_up = []    skipped = []# 创建tar.gz压缩包with tarfile.open(backup_path, "w:gz"as tar:for source in sources:            source_path = Path(source)if source_path.exists():                tar.add(source, arcname=source_path.name)                backed_up.append(source)                print(f"  ✅ 已备份:{source}")else:                skipped.append(source)                print(f"  ⚠️ 跳过(不存在):{source}")return backup_path, backed_up, skippeddefcleanup_old_backups(backup_dir, max_backups):"""    清理旧的备份文件,只保留最新的N个    :param backup_dir: 备份目录    :param max_backups: 最大保留数量    """    backup_files = sorted(        Path(backup_dir).glob("config_backup_*.tar.gz"),        key=lambda f: f.stat().st_mtime,        reverse=True# 最新的排在前面    )# 删除超出数量的旧备份    old_backups = backup_files[max_backups:]for old_file in old_backups:        old_file.unlink()        print(f"  🗑️  已删除旧备份:{old_file.name}")return len(old_backups)defget_file_size(filepath):"""获取文件大小(友好格式)"""    size = os.path.getsize(filepath)if size < 1024:returnf"{size} B"elif size < 1024 * 1024:returnf"{size/1024:.1f} KB"else:returnf"{size/1024/1024:.2f} MB"defmain():    print("=" * 55)    print("  🗂️  配置文件自动备份脚本")    print(f"  📅 备份时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")    print("=" * 55)# 执行备份    backup_path, backed_up, skipped = create_backup(BACKUP_SOURCES, BACKUP_DIR)# 清理旧备份    print(f"\n🧹 检查旧备份(保留最新 {MAX_BACKUPS} 个)...")    deleted_count = cleanup_old_backups(BACKUP_DIR, MAX_BACKUPS)# 打印备份摘要    file_size = get_file_size(backup_path)    print("\n" + "=" * 55)    print("📊 备份摘要:")    print(f"  💾 备份文件:{os.path.basename(backup_path)}")    print(f"  📦 文件大小:{file_size}")    print(f"  ✅ 成功备份:{len(backed_up)} 个文件")    print(f"  ⚠️  跳过:{len(skipped)} 个文件")    print(f"  🗑️  清理旧备份:{deleted_count} 个")    print("=" * 55)    print("\n✅ 备份完成!")if __name__ == "__main__":    main()

进阶技巧:让ChatGPT帮你调Bug

写完脚本运行报错了怎么办?把报错信息直接扔给ChatGPT!

提示词模板:

我在运行以下Python脚本时遇到了报错,请帮我分析原因并给出修复方案:【报错信息】(粘贴完整的错误信息)【相关代码】(粘贴出错的代码片段)【运行环境】Python 3.x,CentOS 7,root权限

ChatGPT会直接告诉你:

  • 报错原因是什么
  • 具体是哪一行有问题
  • 修改后的代码是什么

总结:AI辅助运维的正确姿势

通过今天4个场景的实战演示,我们可以总结出几个关键点:

技巧
说明
提示词要具体
说清楚运行环境、Python版本、具体功能需求
要求加注释
让ChatGPT给每个函数写注释,方便后续维护
要求异常处理
生产环境不允许脚本崩溃,一定要加try-except
分场景提问
复杂需求拆成小模块,逐个让AI生成再组合
让AI解释代码
不懂的代码让它逐行解释,边用边学

ChatGPT不会替代运维工程师,但会让不懂Python的运维人能写脚本,让会写脚本的运维人效率翻倍。


写在最后

如果你还没有开始用AI辅助运维,从今天的这4个脚本开始吧!

复制 → 改配置 → 运行,5分钟就能跑起来。

有任何问题,欢迎在评论区留言,或者直接把报错信息扔给ChatGPT,它比你想象的聪明多了😄


🌟 觉得有用就点个赞!你的支持是我持续输出干货的动力~

📱 关注公众号,每周分享运维技术干货和AI工具使用技巧


作者:成都银河教育 | 网络运维技术讲师涵盖:华为/华三网络 | Linux运维 | MySQL/Oracle | 安全技术 | 云计算

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-04 08:12:39 HTTP/2.0 GET : https://f.mffb.com.cn/a/491066.html
  2. 运行时间 : 0.081189s [ 吞吐率:12.32req/s ] 内存消耗:4,721.06kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6e7c2923901a5b17b6a050f3c7b543b7
  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.000497s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000895s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000260s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000295s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000462s ]
  6. SELECT * FROM `set` [ RunTime:0.000201s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000502s ]
  8. SELECT * FROM `article` WHERE `id` = 491066 LIMIT 1 [ RunTime:0.000566s ]
  9. UPDATE `article` SET `lasttime` = 1783123959 WHERE `id` = 491066 [ RunTime:0.005683s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000221s ]
  11. SELECT * FROM `article` WHERE `id` < 491066 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000430s ]
  12. SELECT * FROM `article` WHERE `id` > 491066 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000450s ]
  13. SELECT * FROM `article` WHERE `id` < 491066 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000595s ]
  14. SELECT * FROM `article` WHERE `id` < 491066 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001241s ]
  15. SELECT * FROM `article` WHERE `id` < 491066 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003009s ]
0.082760s