当前位置:首页>Linux>Linux Btrfs文件系统之快照与 send/receive

Linux Btrfs文件系统之快照与 send/receive

  • 2026-08-18 23:11:45
Linux Btrfs文件系统之快照与 send/receive

字数 1470,阅读大约需 8 分钟

Btrfs 快照 + send/receive = 强大的备份与同步系统。本篇讲清快照原理、send/receive 流程、增量备份、与 snapper 的集成。

一、快照是什么?

Btrfs 快照 = subvolume 的只读或可写引用副本

原始 subvolume: /mnt/data
  引用 extent: A, B, C

快照 /mnt/data@2024-01-01:
  引用 extent: A, B, C(共享,不复制)

修改 /mnt/data(覆盖 extent B):
  /mnt/data → A, B', C
  /mnt/data@2024-01-01 → A, B, C(保留旧 B)

关键点

  • • 创建瞬时(O(1))
  • • 不复制数据
  • • 不需要预分配空间
  • • 可以无限创建

二、创建快照

2.1 可写快照

# 创建一个可写快照
$ btrfs subvolume snapshot /mnt/data /mnt/data-new
Create snapshot of '/mnt/data' in '/mnt/data-new'

# 验证

$ btrfs subvolume list /mnt
ID 256 gen 8 top level 5 path data
ID 350 gen 10 top level 5 path data-new

2.2 只读快照

# 创建只读快照(推荐用于备份)
$ btrfs subvolume snapshot -r /mnt/data /mnt/snapshots/data@2024-01-01
Create readonly snapshot of '/mnt/data' in '/mnt/snapshots/data@2024-01-01'

# 验证

$ btrfs subvolume show /mnt/snapshots/data@2024-01-01
        Name:                   data@2024-01-01
        Flags:                  readonly

2.3 递归快照(多 subvolume)

# 一次性拍多个 subvolume
$ for subvol in @ @home data; do
    btrfs subvolume snapshot -r /mnt/$subvol /mnt/snapshots/${subvol}@$(date +%Y%m%d)
done

三、查看快照

# 列出所有快照
$ btrfs subvolume list -s /mnt
ID 350 gen 10 top level 5 path snapshots/data@2024-01-01
ID 351 gen 12 top level 5 path snapshots/data@2024-01-15

# 看快照占用

$ btrfs subvolume show /mnt/snapshots/data@2024-01-01
        Name:                   data@2024-01-01
        ...
        Snapshot(s):
                                data-new (320M used)

占用 = 与父 subvolume 差异的 extent 大小

四、回滚(Rollback)

Btrfs 不直接支持 rollback,但可以用以下方法实现:

4.1 替换回滚

# 1. 把快照改名为原 subvolume
$ mv /mnt/data /mnt/data.broken
$ mv /mnt/snapshots/data@2024-01-01 /mnt/data

4.2 在快照上工作

# 1. 拍快照
$ btrfs subvolume snapshot -r /mnt/data /mnt/snapshots/data@before-upgrade

# 2. 升级...


# 3. 失败?用快照替换

$ mv /mnt/data /mnt/data.bad
$ btrfs subvolume snapshot /mnt/snapshots/data@before-upgrade /mnt/data

4.3 启动时回滚

系统盘场景(@ 是根,@home 是 home):

# 启动进 live USB

# 挂载 Btrfs

$ mount /dev/sda2 /mnt

# 查快照

$ ls /mnt/@/.snapshots/

# 回滚

$ mv /mnt/@ /mnt/@.broken
$ mv /mnt/@/.snapshots/1/snapshot /mnt/@

# 重启

五、send/receive:流式备份

5.1 什么是 send/recv

  • • btrfs send:把 subvolume 或快照导出为(类似 tar 流)
  • • btrfs receive:把流导入为新 subvolume
  • • 增量:只发送两次快照之间的差异
完整:btrfs send snap1 | btrfs receive /backup
增量:btrfs send -p snap1 snap2 | btrfs receive /backup

5.2 完整发送

# 1. 拍快照
$ btrfs subvolume snapshot -r /mnt/data /mnt/snapshots/data@base

# 2. 发送

$ btrfs send /mnt/snapshots/data@base > /backup/data-full.btrfs

# 或直接接收

$ btrfs send /mnt/snapshots/data@base | btrfs receive /backup

5.3 增量发送

# 1. 拍新快照
$ btrfs subvolume snapshot -r /mnt/data /mnt/snapshots/data@v2

# 2. 增量发送(基于 base)

$ btrfs send -p /mnt/snapshots/data@base /mnt/snapshots/data@v2 | btrfs receive /backup
#                       ^^^^^^ parent snap

#                                              ^^^^^ new snap

接收端必须有 parent 快照,才能做增量。

5.4 远程发送

# 1. 本地拍快照
$ btrfs subvolume snapshot -r /mnt/data /mnt/snapshots/data@2024-01-15

# 2. 发送到远程

$ btrfs send /mnt/snapshots/data@2024-01-15 | ssh backup-server btrfs receive /backup/data
# 或

$ btrfs send /mnt/snapshots/data@2024-01-15 | ssh backup-server "cat > /backup/data-2024-01-15.btrfs"

优势

  • • 网络传输只发差异(增量)
  • • 不需要客户端软件(只有 btrfs-progs + ssh)
  • • 完全事务性

六、自动化:snapper

6.1 什么是 snapper

snapper 是 openSUSE 开发的 Btrfs 快照管理工具:

  • • 自动拍快照
  • • 自动清理过期快照
  • • 与 btrfs send/recv 配合做远程备份

6.2 安装与初始化

# openSUSE
$ zypper install snapper

# Ubuntu

$ apt install snapper

# 创建配置(针对 / 挂载点)

$ snapper -c root create-config /

# 看

$ snapper list-configs
Config | subvolume
-------+----------
root   | /

6.3 自动拍快照

# 手动拍
$ snapper -c root create --description "before upgrade"

# 时间线快照(snapper 自动)

$ snapper -c root create --command "yum update" --description "system update"

# 看

$ snapper -c root list
 # | Type   | Pre # | Date                     | User | Cleanup | Description

---+--------+-------+--------------------------+------+---------+--------------------
0  | single |       |                          | root |         | current
1  | single |       | 2024-01-15 03:00:01      | root |         | before upgrade

6.4 自动清理

# /etc/snapper/configs/root
TIMELINE_CREATE="yes"
TIMELINE_CLEANUP="yes"
TIMELINE_MIN_AGE="1800"  # 30 分钟
TIMELINE_LIMIT_HOURLY="10"
TIMELINE_LIMIT_DAILY="10"
TIMELINE_LIMIT_WEEKLY="0"
TIMELINE_LIMIT_MONTHLY="10"
TIMELINE_LIMIT_YEARLY="10"

snapper 自动保留:

  • • 每小时 10 个
  • • 每天 10 个
  • • 每月 10 个
  • • 每年 10 个

6.5 snapper 与 send/recv

# snapper 配合 btrfs-send 做远程备份
$ snapper -c root send 1 2 3 | ssh backup-server "btrfs receive /backup/root"

实际上手写脚本更灵活。

七、实战:完整备份流程

7.1 本地备份脚本

#!/bin/bash
# /usr/local/bin/btrfs-backup-local.sh


SUBVOL=$1
DEST=$2
SNAP_DATE=$(date +%Y%m%d-%H%M%S)

if
 [ -z "$SUBVOL" ] || [ -z "$DEST" ]; then
    echo
 "Usage: $0 <subvol> <dest>"
    exit
 1
fi


# 1. 拍快照

btrfs subvolume snapshot -r "/mnt/$SUBVOL" "/mnt/snapshots/${SUBVOL}@${SNAP_DATE}"

# 2. 找最新父快照

LATEST_SNAP=$(ls -1 /mnt/snapshots/${SUBVOL}@* 2>/dev/null | sort | tail -1)

# 3. 发送

if
 [ -z "$LATEST_SNAP" ]; then
    # 完整

    btrfs send "/mnt/snapshots/${SUBVOL}@${SNAP_DATE}" | btrfs receive "$DEST"
else

    # 增量

    btrfs send -p "$LATEST_SNAP" "/mnt/snapshots/${SUBVOL}@${SNAP_DATE}" | btrfs receive "$DEST"
fi


# 4. 清理 7 天前快照

find /mnt/snapshots -name "${SUBVOL}@*" -mtime +7 -exec btrfs subvolume delete {} \;

7.2 远程备份

#!/bin/bash
# /usr/local/bin/btrfs-backup-remote.sh


SUBVOL=$1
REMOTE=$2  # user@host:/path

SNAP_DATE=$(date +%Y%m%d-%H%M%S)

# 1. 拍快照

btrfs subvolume snapshot -r "/mnt/$SUBVOL" "/mnt/snapshots/${SUBVOL}@${SNAP_DATE}"

# 2. 远程发送

LATEST_SNAP=$(ls -1 /mnt/snapshots/${SUBVOL}@* 2>/dev/null | sort | tail -1)

if
 [ -z "$LATEST_SNAP" ]; then
    btrfs send "/mnt/snapshots/${SUBVOL}@${SNAP_DATE}" | ssh "${REMOTE%:*}" "btrfs receive ${REMOTE#*:}"
else

    btrfs send -p "$LATEST_SNAP" "/mnt/snapshots/${SUBVOL}@${SNAP_DATE}" | ssh "${REMOTE%:*}" "btrfs receive ${REMOTE#*:}"
fi

7.3 cron 自动化

# /etc/cron.d/btrfs-backup
0 2 * * * root /usr/local/bin/btrfs-backup-remote.sh data backup@backup-nas:/backup/data
0 3 * * * root /usr/local/bin/btrfs-backup-remote.sh home backup@backup-nas:/backup/home

八、send/recv 限制

限制
说明
只能发只读快照
writeable subvolume 不能直接发
接收端必须是 Btrfs
不能发到 ext4
跨内核版本不兼容
老内核接收新内核发的流可能失败
跨主机不同 FS UUID 报错
用 -f 强制

九、恢复 send/recv 备份

# 1. 接收端:找到快照
$ btrfs subvolume list /backup
# 看 ID 和 path


# 2. 接收回来

$ btrfs send /backup/data@2024-01-15 | btrfs receive /mnt/restored

# 3. 挂载

$ mount -o subvol=restored /dev/sdX /mnt/restored

十、本篇小结

操作
命令
拍快照
btrfs subvolume snapshot /src /dst
只读快照
btrfs subvolume snapshot -r /src /dst
完整发送
btrfs send snap1
增量发送
btrfs send -p snap_old snap_new
接收
btrfs receive /dest
远程
btrfs send ... | ssh host btrfs receive ...
自动管理
snapper

核心要点

  • • 快照 = 引用,不复制(O(1))
  • • send/recv = 流式传输(管道/SSH)
  • • 增量需要父快照(接收端必须有)
  • • snapper 是 openSUSE 标准做法
  • • 跨内核版本要小心兼容

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 21:45:42 HTTP/2.0 GET : https://f.mffb.com.cn/a/509010.html
  2. 运行时间 : 0.217263s [ 吞吐率:4.60req/s ] 内存消耗:4,697.24kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=8c40d4f719b821fbbf0fbfd16374d432
  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.001079s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001508s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000698s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000995s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001600s ]
  6. SELECT * FROM `set` [ RunTime:0.000689s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001543s ]
  8. SELECT * FROM `article` WHERE `id` = 509010 LIMIT 1 [ RunTime:0.001382s ]
  9. UPDATE `article` SET `lasttime` = 1787319942 WHERE `id` = 509010 [ RunTime:0.017324s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000531s ]
  11. SELECT * FROM `article` WHERE `id` < 509010 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000877s ]
  12. SELECT * FROM `article` WHERE `id` > 509010 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000955s ]
  13. SELECT * FROM `article` WHERE `id` < 509010 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.007161s ]
  14. SELECT * FROM `article` WHERE `id` < 509010 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002248s ]
  15. SELECT * FROM `article` WHERE `id` < 509010 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.017752s ]
0.221198s