当前位置:首页>python>Shell 只能干苦力?加上 Python 和 Ansible,这套巡检方案绝了!

Shell 只能干苦力?加上 Python 和 Ansible,这套巡检方案绝了!

  • 2026-01-11 16:53:11
Shell 只能干苦力?加上 Python 和 Ansible,这套巡检方案绝了!

哈喽,兄弟们好,我是阿然。

咱们搞运维的,最怕听到哪句话?不是“服务器宕机了”,而是周五下午四点半,老板突然来一句:“阿然,把线上那 100 台服务器的健康状况整理个 Excel 报表给我,下班前要。”

手动一台台登录、敲命令、截图、填表……这哪是运维,这是“表哥”啊!

这次不整虚的,Bash 脚本 + Python 自动报表 + Ansible 批量并发,一套组合拳,直接把服务器巡检这件事彻底搞定!

运维人的原则是:能用脚本绝不手动,能自动化绝不人肉。

话不多说,直接上干货!👇


SysCheck  核心脚本(Bash版) 一键部署

在服务器终端直接复制并执行以下命令(自动创建文件并赋权):

cat > syscheck.sh << 'EOF'#!/bin/bash# ================ SysCheck 2.0 服务器运维巡检脚本 ================# 更新日志:SysCheck 2.0 - 修复 Rocky Linux 安全检查报错,优化输出体验# 公众号:Linux运维进阶之路 | 作者:阿然# ===============================================================# --- 基础配置 ---# 自动检测终端颜色if [ -t 1 ]; then    RED="\033[91m"    GREEN="\033[92m"    YELLOW="\033[93m"    BLUE="\033[94m"    BOLD="\033[1m"    NC="\033[0m"else    RED=""; GREEN=""; YELLOW=""; BLUE=""; BOLD=""; NC=""fiprint_title() {echo -e "\n${BLUE}${BOLD}════════════════════════════════════════════════════════════${NC}"echo -e "${BOLD}$1${NC}"echo -e "${BLUE}${BOLD}════════════════════════════════════════════════════════════${NC}"}print_status() {case"$1"in        ok) echo -e "${GREEN} [OK] $2${NC}" ;;        warn) echo -e "${YELLOW} [WARN] $2${NC}" ;;        error) echo -e "${RED} [ERROR] $2${NC}" ;;        info) echo -e "${BLUE} [INFO] $2${NC}" ;;esac}# --- 1. 系统基础信息 ---clearprint_title "Linux 服务器深度巡检 (SysCheck 2.0)"echo -e "巡检时间:$(date '+%Y-%m-%d %H:%M:%S')"[ -f /etc/os-release ] && . /etc/os-releaseprint_status info "系统版本 : ${PRETTY_NAME:-未知}"print_status info "主机名称 : $(hostname)"print_status info "内核版本 : $(uname -r)"print_status info "平均负载 : $(uptime | awk -F'load average:' '{print $2}' | sed 's/^[ \t]*//')"# --- 2. 资源使用情况 ---print_title "资源使用情况"# 内存mem_total=$(free -h | awk '/Mem/{print $2}')mem_used=$(free -h | awk '/Mem/{print $3}')mem_free=$(free -h | awk '/Mem/{print $4}')print_status info "内存总量: $mem_total | 已用: $mem_used | 剩余: $mem_free"# 磁盘 (排除 tmpfs, cdrom, loop, overlay)df -hT | grep -vE 'tmpfs|cdrom|loop|overlay' | whileread fs type size used avail use mount; do    usage_num=$(echo"$use" | tr -d '%')if [ "$usage_num" -ge 90 ]; then        print_status error "磁盘告警: $mount ($use) - 空间严重不足!"elif [ "$usage_num" -ge 80 ]; then        print_status warn "磁盘预警: $mount ($use) - 空间较少"else        print_status ok "磁盘正常: $mount ($use)"fidone# --- 3. 安全补丁检查 (修复增强版) ---print_title "安全补丁与漏洞检查"ifcommand -v apt >/dev/null 2>&1; then# Debian/Ubuntu 逻辑if updates=$(apt list --upgradable 2>/dev/null | grep -v "Listing..."); then        cnt=$(echo"$updates" | wc -l)if [ "$cnt" -gt 0 ]; then            print_status warn "发现 $cnt 个可升级包"else            print_status ok "系统软件包已是最新"fifielifcommand -v dnf >/dev/null 2>&1 || command -v yum >/dev/null 2>&1; then# RHEL/CentOS/Rocky 逻辑 (增加容错)    PKG_MGR=$(command -v dnf || command -v yum)# 核心修复:静默检查并捕获错误码# 如果源不支持 security 插件,此处不再报错退出,而是提示跳过if sec_info=$($PKG_MGR updateinfo list security 2>/dev/null); then        sec_count=$(echo"$sec_info" | grep -c "security" || echo 0)if [ "$sec_count" -gt 0 ]; then            print_status warn "发现 $sec_count 个安全补丁待安装!"echo"$sec_info" | head -n 5else            print_status ok "未发现严重安全补丁"fielse        print_status info "跳过安全检查:当前源不支持元数据查询或缺少插件"fielse    print_status info "未知包管理器,跳过补丁检查"fi# --- 4. 异常检测 ---print_title "异常进程检测 (Top 3)"# 高负载进程echo -e "${BOLD}CPU 占用前三:${NC}"ps -eo pid,user,%cpu,cmd --sort=-%cpu | head -n 4 | tail -n 3 | awk '{printf "  %-6s %-10s %-6s %s\n", $1, $2, $3, $4}'echo -e "\n${BOLD}内存 占用前三:${NC}"ps -eo pid,user,%mem,cmd --sort=-%mem | head -n 4 | tail -n 3 | awk '{printf "  %-6s %-10s %-6s %s\n", $1, $2, $3, $4}'# 僵尸进程zombies=$(ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | wc -l)if [ "$zombies" -gt 0 ]; then    print_status error "发现 $zombies 个僵尸进程!"else    print_status ok "无僵尸进程"fi# --- 5. 结束 ---print_title "巡检完成"echo -e "建议:定期清理 /var/log,关注磁盘使用率。\n"EOF# 赋予权限并运行chmod +x syscheck.sh./syscheck.sh

拿去交差!Python 生成 Excel 报表

终端输出适合我们自己排查问题,但如果要给领导做月度/季度汇报,一份专业的 Excel 表格 才是加分项。

阿然给兄弟们写了一个 Python 脚本,它会自动采集系统信息,生成包含“系统概览”“磁盘详情”两个 Sheet 的报表。

🔧 前置准备

#!/usr/bin/env python3# -*- coding: utf-8 -*-# ==============================================================================# 脚本名称: syscheck_excel.py (Pro版)# 功能描述: 采集Linux系统信息、磁盘、Top进程,生成带样式的美观Excel报表# 运行方式: chmod +x syscheck_excel.py && ./syscheck_excel.py# 依赖库  : pip3 install psutil pandas openpyxl# 作者    : 阿然 @ Linux运维进阶之路# ==============================================================================import osimport sysimport socketimport datetimeimport platform# 依赖库检查try:    import psutil    import pandas as pd    from openpyxl.styles import Font, PatternFill, Border, Side, Alignment    from openpyxl.utils import get_column_letterexcept ImportError as e:print(f"\033[91m[Error] 缺少必要模块: {e.name}\033[0m")print("请先执行安装: pip3 install psutil pandas openpyxl")    sys.exit(1)def get_size(bytes, suffix="B"):"""人性化显示文件大小"""    factor = 1024for unit in ["""K""M""G""T""P"]:if bytes < factor:return f"{bytes:.2f}{unit}{suffix}"        bytes /= factordef get_process_info():"""获取CPU和内存占用最高的Top 10进程"""    procs = []for p in psutil.process_iter(['pid''name''username''cpu_percent''memory_percent']):        try:            procs.append(p.info)        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):            pass# 转为DataFrame    df_proc = pd.DataFrame(procs)if not df_proc.empty:# 按内存使用率排序取Top 10        df_proc = df_proc.sort_values(by='memory_percent', ascending=False).head(10)        df_proc['cpu_percent'] = df_proc['cpu_percent'].apply(lambda x: f"{x:.1f}%")        df_proc['memory_percent'] = df_proc['memory_percent'].apply(lambda x: f"{x:.1f}%")        df_proc.columns = ['PID''进程名''用户''CPU使用率''内存使用率']return df_procreturn pd.DataFrame()def beautify_excel(writer, sheet_name, df):"""Excel美化函数:调整列宽、设置边框、颜色高亮"""    workbook = writer.book    worksheet = writer.sheets[sheet_name]# 定义样式    header_fill = PatternFill(start_color="4F81BD", end_color="4F81BD", fill_type="solid"# 蓝色表头    header_font = Font(color="FFFFFF", bold=True) # 白色粗体字    thin_border = Border(left=Side(style='thin'), right=Side(style='thin'),                          top=Side(style='thin'), bottom=Side(style='thin'))    align_center = Alignment(horizontal='center', vertical='center')# 告警样式    red_font = Font(color="FF0000", bold=True)    # 红色警告    orange_font = Font(color="FFC000", bold=True) # 橙色预警# 1. 设置表头样式for cell in worksheet[1]:        cell.fill = header_fill        cell.font = header_font        cell.alignment = align_center        cell.border = thin_border# 2. 设置内容样式 & 自动列宽for col in worksheet.columns:        max_length = 0        column = col[0].column_letter # 获取列号字母for cell in col:# 设置边框和居中            cell.border = thin_border            cell.alignment = align_center# 计算最大列宽            try:if len(str(cell.value)) > max_length:                    max_length = len(str(cell.value))            except:                pass# 3. 磁盘使用率高亮逻辑 (仅针对磁盘页面的"使用率"列)if sheet_name == '磁盘详情' and '使用率'in df.columns:# 找到"使用率"所在的列索引                usage_col_idx = df.columns.get_loc('使用率') + 1 if cell.col_idx == usage_col_idx and isinstance(cell.value, str) and '%'in cell.value:                    try:                        val = float(cell.value.strip('%'))if val >= 90:                            cell.font = red_fontelif val >= 80:                            cell.font = orange_font                    except ValueError:                        pass# 应用列宽 (稍微多给点余量)        adjusted_width = (max_length + 4)        worksheet.column_dimensions[column].width = adjusted_widthdef sys_check_excel():print(f"[{datetime.datetime.now().strftime('%H:%M:%S')}] ⏳ 开始深度巡检...")    host_name = socket.gethostname()# --- 1. 系统概览 ---    uname = platform.uname()    boot_time = datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S")    load_avg = os.getloadavg() if hasattr(os, 'getloadavg'else"N/A"# Windows兼容处理    sys_data = [        {'指标''主机名''内容': host_name},        {'指标''系统版本''内容': f"{uname.system} {uname.release}"},        {'指标''内核版本''内容': uname.version},        {'指标''CPU逻辑核数''内容': f"{psutil.cpu_count(logical=True)} 核"},        {'指标''内存总量''内容': get_size(psutil.virtual_memory().total)},        {'指标''系统负载 (1/5/15)''内容': str(load_avg)},        {'指标''启动时间''内容': boot_time},        {'指标''采集时间''内容': datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")}    ]    df_sys = pd.DataFrame(sys_data)# --- 2. 磁盘详情 ---    disk_list = []for partition in psutil.disk_partitions():if'loop'in partition.device or 'docker'in partition.mountpoint or 'overlay'in partition.mountpoint: continue        try:            u = psutil.disk_usage(partition.mountpoint)            disk_list.append({'文件系统': partition.device,'挂载点': partition.mountpoint,'类型': partition.fstype,'总容量': get_size(u.total),'已用': get_size(u.used),'可用': get_size(u.free),'使用率': f"{u.percent}%"            })        except PermissionError:continue    df_disk = pd.DataFrame(disk_list)# --- 3. Top 10 进程 ---print(f"[{datetime.datetime.now().strftime('%H:%M:%S')}] ⏳ 正在分析进程资源...")    df_proc = get_process_info()# --- 4. 生成 Excel ---    filename = f"深度巡检报告_{host_name}_{datetime.datetime.now().strftime('%Y%m%d')}.xlsx"    try:        with pd.ExcelWriter(filename, engine='openpyxl') as writer:# 写入 Sheet            df_sys.to_excel(writer, sheet_name='系统概览', index=False)            df_disk.to_excel(writer, sheet_name='磁盘详情', index=False)if not df_proc.empty:                df_proc.to_excel(writer, sheet_name='Top10进程', index=False)# 应用美化            beautify_excel(writer, '系统概览', df_sys)            beautify_excel(writer, '磁盘详情', df_disk)if not df_proc.empty:                beautify_excel(writer, 'Top10进程', df_proc)print(f"\n✅ 巡检完成!")print(f"📊 报表已生成: \033[92m{os.path.abspath(filename)}\033[0m")print(f"💡 提示: 磁盘使用率 >80% 字体显示橙色,>90% 显示红色")    except Exception as e:print(f"\n❌ 生成失败: {e}")if __name__ == "__main__":    sys_check_excel()

解放双手!Ansible 批量巡检

机器太多?不想一台台 SSH 登录? 如果你有 Ansible 环境,只需要 3 步,就能把 100 台服务器的体检单全抓回来。

1️⃣ 准备工作

确保你的 Ansible 主机清单 (hosts.ini) 已经配置好:

[webservers]192.168.1.10192.168.1.11[dbservers]192.168.1.20

2️⃣ 编写剧本 (check_all.yml)

这个 Playbook 会自动把第一章的 Bash 脚本分发到所有服务器 -> 执行 -> 拉取结果到本地 reports 目录。

----name:全网服务器批量巡检hosts:allbecome:yestasks:-name:1.分发脚本copy:src:./syscheck.sh# 确保 syscheck.sh 在当前目录dest:/usr/local/bin/syscheck.shmode:'0755'-name:2.执行巡检shell:/usr/local/bin/syscheck.sh>/tmp/check_{{ansible_hostname}}.txt# 提示:如果不想看颜色乱码,可以在脚本里把颜色变量置空-name:3.拉取报告fetch:src:/tmp/check_{{ansible_hostname}}.txtdest:./reports/flat:yes-name:4.清理现场file:path:/tmp/check_{{ansible_hostname}}.txtstate:absent

3️⃣ 执行起飞

ansible-playbook -i hosts.ini check_all.yml

喝口水的功夫,打开 reports/ 文件夹,所有服务器的巡检结果整整齐齐地躺在那里。


💡 阿然有话说

很多兄弟问我:“运维做到最后是不是就是写脚本?”

我觉得,运维的核心价值在于“标准化”“可观测性”

  • Bash 脚本 帮我们标准化了检查步骤,防止漏看;
  • Python/Excel 帮我们实现了数据的可视化,让价值被看到;
  • Ansible 帮我们实现了规模化,把重复劳动降到最低。

希望今天的 SysCheck 能帮你从繁琐的重复劳动中解放出来,早点下班,多陪陪家人。

- EOF -

另外我给大家整理了一些技术资料有需要直接下载即可

链接:https://pan.quark.cn/s/bc5c2c2700f8

需要什么资料也可在评论区留言

或者添加小编咨询

推荐阅读点击标题可跳转

1、告别单点故障!Linux双网卡绑定实战,让故障自动“绕行”

2、Linux服务器太慢?8个系统优化技巧让性能飙升(运维必看)

3、那些藏在角落里的命令行神器,真没几个知道,虽然冷门,但超好用!

4、如何在Linux中列出USB设备

5、推荐八款Linux远程连接工具,非常实用

6、35个常用一线运维shell脚本再整理(经典)

7、Linux故障排查思路及常用命令(收藏)

看完本文有收获?请分享给更多人

推荐关注「Linux 运维进阶之路」,提升Linux技能

❤️点赞&在看❤️,服务器三年不宕机

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 23:07:20 HTTP/2.0 GET : https://f.mffb.com.cn/a/460825.html
  2. 运行时间 : 0.296469s [ 吞吐率:3.37req/s ] 内存消耗:5,040.41kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ca1b9737e343903a4383c35d999b1aac
  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.001008s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001407s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.002516s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.005188s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001324s ]
  6. SELECT * FROM `set` [ RunTime:0.005842s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001375s ]
  8. SELECT * FROM `article` WHERE `id` = 460825 LIMIT 1 [ RunTime:0.031811s ]
  9. UPDATE `article` SET `lasttime` = 1770563241 WHERE `id` = 460825 [ RunTime:0.017083s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000652s ]
  11. SELECT * FROM `article` WHERE `id` < 460825 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.004106s ]
  12. SELECT * FROM `article` WHERE `id` > 460825 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007922s ]
  13. SELECT * FROM `article` WHERE `id` < 460825 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.055954s ]
  14. SELECT * FROM `article` WHERE `id` < 460825 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003566s ]
  15. SELECT * FROM `article` WHERE `id` < 460825 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.011291s ]
0.299795s