当前位置:首页>Linux>linux运维-使用rsync协议-备份/同步企业业务数据

linux运维-使用rsync协议-备份/同步企业业务数据

  • 2026-02-05 13:32:33
linux运维-使用rsync协议-备份/同步企业业务数据

使用rsync协议-备份/同步企业业务数据

目的:使用 rsync协议对公司全网服务同步或者备份数据;

涉及的技能点

  • rsync协议  (远程传输模式和守护进程演示)
  • rsync守护进程模式配置文件部分讲解
  • 使用awk取值
  • 编写rsync服务端和客户端的Shell脚本对所在的企业备份需求进行执行操作 (实际的生产环境中要擅长使用脚本自动化执行)
  • md5sum校验时要比对同目录下的文件
  • tar压缩带不带/的注意事项
  • 定时任务中绝对路径的作用

备份项目拓扑图

实际的生产备份项目中,rsync服务端和客户端所在的业务数据汇总数据路径需要保持一致,方便脚本的书写和MD5校验

备份项目拓扑图

项目拓扑架构

  • 表中rsync服务端在实际的生产环境也视为客户端;(向其他云端或者异地节点进行提送数据)。
角色
外网 IP
内网 IP
主机名
规划路径
Rsync客户端
192.168.0.21/24
10.0.0.21/24
web-01
/dingdan_data01 /os_data01 /suyuan_data01
Rsync客户端
192.168.0.14/24
192.168.0.14/24
NFS
/dingdan_data01 /os_data01 /suyuan_data01
Rsync服务端
192.168.0.12/24
192.168.0.12/24
rsync_server
/share_data101 /share_data101/
Centos7.9
需要将客户端的业务数据压缩到一个文件中进行校验

服务端需求

备份客户的存储路径
校验是否完成
是否推送校验结果
保留数据期限
/sharedata-101/
是;
6个月
客户端汇总的文件压缩打包到/share_data01

客户端端需求

备份路径及书写规则
备份数据及汇总位置
备份目的地
备份周期
备份任务
/share_data01/主机名_时间
/os_data01/ /dingdan_data01/ /suyuan_data01/ 打包到/share_date01
rsync协议传输到备份服务器0.12
只保留7天
每日凌晨1点执行脚本
理解成发快递的一些要求
快递装车
运输到仓库存放
存放周期
执行
因为md5sum不支持对目录进行校验,因此客户端汇总的文件压缩打包
形成一个汇总压缩包到/share_data01

项目部署

Rsync客户端需求配置

1.客户端按照规划创建业务数据目录

  • 其中取值的语句保存好,后续要写入到脚本之中,方便每日执行创建备份的目录;
  • mkdir -p /share_data01/(hostname)_(ifconfig eth1 |awk 'NR==2 {print 2}')_(date +%F)
//按照规划取出以下的客户端备份路径信息(客户端的时间、主机名,IP地址)[root@nfs_0.14[ ~]# date +%F2025-06-28[root@nfs_0.14[ ~]  hostnamenfs_0.14[root@nfs_0.14[ ~]  ifconfig eth1 |awk 'NR==2 {print $2}'10.0.0.14//这样取值路径才符合规划[root@nfs_0.14[ ~]  echo $(hostname)_$(ifconfig eth1 |awk 'NR==2 {print $2}')_$(date +%F)nfs_0.14_10.0.0.14_2025-06-28//单次手动创建每日的备份目录[root@nfs_0.14[ /]  mkdir -p /share_data01/$(hostname)_$(ifconfig eth1 |awk 'NR==2 {print $2}')_$(date +%F)[root@nfs_0.14[ /]  ll /share_data01/总用量 0drwxr-xr-x 2 root root 6 6月  28 18:32 nfs_0.14_10.0.0.14_2025-06-28

2.虚拟出客户端业务数据目录

[root@nfs_0.14[ /]  tree /os_data01/ /dingdan_data01/ /suyuan_data01//os_data01/├── 10.iso├── 1.iso├── 2.iso├── 3.iso├── 4.iso├── 5.iso├── 6.iso├── 7.iso├── 8.iso└── 9.iso/dingdan_data01/├── 10.word├── 1.word├── 2.word├── 3.word├── 4.word├── 5.word├── 6.word├── 7.word├── 8.word└── 9.word/suyuan_data01/├── 10.txt├── 1.txt├── 2.txt├── 3.txt├── 4.txt├── 5.txt├── 6.txt├── 7.txt├── 8.txt└── 9.txt
  • 拷贝客户端模拟的业务数据目录到指定备份目录下(根据情况是否压缩)

cp -rp /dingdan_data01 /suyuan_data01 /os_data01 /share_data01/(hostname)_(ifconfig eth1 |awk 'NR==2 {print 2}')_(date +%F)

[root@nfs_0.14[ /share_data01]# cp -rp /dingdan_data01 /suyuan_data01 /os_data01 /share_data01/$(hostname)_$(ifconfig eth1 |awk 'NR==2 {print $2}')_$(date +%F)[root@nfs_0.14[ /share_data01]# ll /share_data01/nfs_0.14_10.0.0.14_2025-06-28/总用量 0drwxr-xr-x 2 root root 147 6月  28 18:38 dingdan_data01drwxr-xr-x 2 root root 137 6月  28 18:38 os_data01drwxr-xr-x 2 root root 137 6月  28 18:37 suyuan_data01[root@nfs_0.14[ /share_data01]

rsync服务端配置

  • rsync配置文件  (之前分享过不再过多讲解如何配置)
[root@rsync-server_0.12[ /linshi01]# cat /etc/rsyncd.confuid = rsyncgid = rsyncport = 873fake super = yesuse chroot = nomax connections = 200timeout = 600#ignore errorsread only = falselist = trueauth users = rsync_backupsecrets file = /etc/rsync.passwdlog file = /var/log/rsyncd.log####################################[linshi01]comment = “这是临时rsync的测试文件”path = /linshi01[sharedata101]comment = "这是NFS、Web01的业务数据"path = /sharedata101

rsync配置文件中的认证用户和用户的区别

问:配置文件中的这两个用户有什么关系?

答:没有必然关系,rsync是负责写数据的用户身份,而rsync_backup用于连接rsync服务端的用户身份;

uid = rsyncgid = rsyncauth users = rsync_backup
rsync配置文件中的认证用户和用户的区别

  • 注意在新增模块后,要重启rsync服务,并授权模块的目录为的属主组
[root@rsync-server_0.12[ /]  ll -ld /sharedata-101/drwxr-xr-x 2 rsync rsync 6 6月  28 18:59 /sharedata-101/[root@rsync-server_0.12[ /]  systemctl restart rsyncd[root@rsync-server_0.12[ /] netstat -lntup | grep '873'tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      3101/rsync          tcp6       0      0 :::873                  :::*                    LISTEN      3101/rsync          [root@rsync-server_0.12[ /]
  • 客户端向rsync服务端推送规划好的文件路径下的内容:
[root@nfs_0.14[ /etc]# rsync -vaz /share_data01/ rsync_backup@10.0.0.12::sharedata101 --password-file=/etc/rsync.passwordsending incremental file list./nfs_0.14_10.0.0.14_2025-06-28/nfs_0.14_10.0.0.14_2025-06-28/dingdan_data01/nfs_0.14_10.0.0.14_2025-06-28/dingdan_data01/1.wordnfs_0.14_10.0.0.14_2025-06-28/dingdan_data01/10.word
服务端查看备份路径下是有相应的备份数据
  • 按照规划,这样手动执行操作是不太友好的,因此需要将这些命令附到脚本中,定时任务中去执行;
//客户端中编写一个脚本文件[root@nfs_0.14[ /scripts]# pwd/scripts[root@nfs_0.14[ /scripts]  cat NFS_push_sharedata01.sh #!/usr/bin/bash//创建备份的目录mkdir -p /share_data01/$(hostname)_$(ifconfig eth1 |awk 'NR==2 {print $2}')_$(date +%F)//拷贝备份文件到备份目录之中cp -rp /dingdan_data01 /suyuan_data01 /os_data01 /share_data01/$(hostname)_$(ifconfig eth1 |awk 'NR==2 {print $2}')_$(date +%F)//推送备份数据到Rsync服务端rsync -vaz /share_data01/ rsync_backup@10.0.0.12::sharedata101 --password-file=/etc/rsync.password
测试脚本是否可以执行
服务端查看规划好的备份目录内的文件正常推送
  • 因为在实际的生产环境,这样的脚本内容会显得十分不灵活,因此介入变量;
[root@nfs_0.14[ /scripts]# cat NFS_push_sharedata01.sh #!/usr/bin/bash#定义变量(首字母大小写,区分系统命令Path=/share_data01Host=$(hostname)Addr=$(ifconfig eth1 |awk 'NR==2 {print $2}')Date=$(date +%F)#合并一个变量,大括号包裹的是变量,小括号包裹的是命令Dest=${Host}_${Addr}_${Date}#1.创建备份的目录mkdir -p $Path/$Dest#2.拷贝不同业务数据的存储文件汇总到指定文件夹内cp -rp /dingdan_data01 /suyuan_data01 /os_data01 $Path/$Dest#3.推送汇总的备份数据到rsync服务端rsync -vaz $Path/ rsync_backup@10.0.0.12::sharedata101 --password-file=/etc/rsync.password#4.保留7天的备份数据
  • 测试脚本是否可以正常执行以及rsync服务端和客户端内是否按照规划好的内容进行汇总推送
执行脚本后测试正常-推送以及汇总

模拟客户端到服务端产生了30天的数据(为解决决客户端中只保留7天的数据)

//在NFS客户端上执行模拟出30天的数据;[root@nfs_0.14[ /scripts]  for i in {1..30}; do date -s 2025/07/$i; sh /scripts/NFS_push_sharedata01.sh ; done
模拟客户端到服务端产生了30天的数据
  • 使用find命令查找7天内的数据,并删除其余数据
//如果不携带深度的参数的查找效果,文件路径较深,实际生产环境中查看比较繁琐;[root@nfs_0.14[ /]# find /share_data01/ -type d /share_data01//share_data01/nfs_0.14_10.0.0.14_2025-06-30/share_data01/nfs_0.14_10.0.0.14_2025-06-30/dingdan_data01/share_data01/nfs_0.14_10.0.0.14_2025-06-30/suyuan_data01/share_data01/nfs_0.14_10.0.0.14_2025-06-30/os_data01/share_data01/nfs_0.14_10.0.0.14_2025-07-01/share_data01/nfs_0.14_10.0.0.14_2025-07-01/dingdan_data01/share_data01/nfs_0.14_10.0.0.14_2025-07-01/suyuan_data01/share_data01/nfs_0.14_10.0.0.14_2025-07-01/os_data01/share_data01/nfs_0.14_10.0.0.14_2025-07-02......//携带了限制文件路径深度的参数,显示出的结果比较明了,忽略了更深层的子目录[root@nfs_0.14[ /]# find /share_data01/ -maxdepth 1 -type d/share_data01//share_data01/nfs_0.14_10.0.0.14_2025-06-30/share_data01/nfs_0.14_10.0.0.14_2025-07-01/share_data01/nfs_0.14_10.0.0.14_2025-07-02/share_data01/nfs_0.14_10.0.0.14_2025-07-03/share_data01/nfs_0.14_10.0.0.14_2025-07-04/share_data01/nfs_0.14_10.0.0.14_2025-07-05/share_data01/nfs_0.14_10.0.0.14_2025-07-06/share_data01/nfs_0.14_10.0.0.14_2025-07-07/share_data01/nfs_0.14_10.0.0.14_2025-07-08......// 配合时间参数[root@nfs_0.14[ /]# find /share_data01/ -maxdepth 1 -type d -mtime +7/share_data01/nfs_0.14_10.0.0.14_2025-06-30/share_data01/nfs_0.14_10.0.0.14_2025-07-01/share_data01/nfs_0.14_10.0.0.14_2025-07-02/share_data01/nfs_0.14_10.0.0.14_2025-07-03/share_data01/nfs_0.14_10.0.0.14_2025-07-04/share_data01/nfs_0.14_10.0.0.14_2025-07-05/share_data01/nfs_0.14_10.0.0.14_2025-07-06/share_data01/nfs_0.14_10.0.0.14_2025-07-07/share_data01/nfs_0.14_10.0.0.14_2025-07-08/share_data01/nfs_0.14_10.0.0.14_2025-07-09/share_data01/nfs_0.14_10.0.0.14_2025-07-10/share_data01/nfs_0.14_10.0.0.14_2025-07-11/share_data01/nfs_0.14_10.0.0.14_2025-07-12/share_data01/nfs_0.14_10.0.0.14_2025-07-13/share_data01/nfs_0.14_10.0.0.14_2025-07-14/share_data01/nfs_0.14_10.0.0.14_2025-07-15/share_data01/nfs_0.14_10.0.0.14_2025-07-16/share_data01/nfs_0.14_10.0.0.14_2025-07-17/share_data01/nfs_0.14_10.0.0.14_2025-07-18/share_data01/nfs_0.14_10.0.0.14_2025-07-19/share_data01/nfs_0.14_10.0.0.14_2025-07-20/share_data01/nfs_0.14_10.0.0.14_2025-07-21/share_data01/nfs_0.14_10.0.0.14_2025-07-22//连接管道,删除7天前的数据root@nfs_0.14[ /]# find /share_data01/ -maxdepth 1 -type d -mtime +7 | xargs rm -fr[root@nfs_0.14[ /]# ls  /share_data01/nfs_0.14_10.0.0.14_2025-07-23  nfs_0.14_10.0.0.14_2025-07-25  nfs_0.14_10.0.0.14_2025-07-27  nfs_0.14_10.0.0.14_2025-07-29nfs_0.14_10.0.0.14_2025-07-24  nfs_0.14_10.0.0.14_2025-07-26  nfs_0.14_10.0.0.14_2025-07-28  nfs_0.14_10.0.0.14_2025-07-30[root@nfs_0.14[ /]

因为rsync服务端有校验的需求,因此需要将汇总的目录和文件进行压缩成一个文件(md5sum命令特性导致);

最终优化的客户端脚本内容

[root@nfs_216.13[ /share_data01]  cat /scripts/NFS_PUSH_0.12.sh #!/usr/bin/bash#定义变量(首字母大小写,区分系统命令Path=/share_data01Host=$(hostname)Addr=$(ifconfig eth1 |awk 'NR==2 {print $2}')Date=$(date +%F)#合并一个变量,大括号包裹的是变量,小括号包裹的是命令Dest=${Host}_${Addr}_${Date}#1.创建备份的目录#mkdir -p $Path/$Dest#2.压缩不同业务数据的存储文件汇总到指定文件夹内-为后续md5校验做文件准备cd /tar czf $Path/${Dest}.tar.gz  dingdan_data01/  os_data01/  suyuan_data01/#3.为客户端业务数据汇总的压缩包创建md5值md5sum $Path/*.tar.gz > $Path/client_${Date}#4.推送汇总的备份数据到rsync服务端rsync -vaz $Path/ rsync_backup@10.0.0.12::sharedata101 --password-file=/etc/rsync.client#4.保留7天的备份数据find $Path/ -maxdepth 1 -type d -mtime +7 | xargs rm -f

最后给予执行权限:

[root@nfs_0.14[ /scripts]  chmod +x rsync-push_0.12.sh

rsync 服务端端需求配置

校验配置

md5sum命令使用说明

  • md5sum 不能针对目录生成
  • 一个文件会产生一个MD5校验值,MD5校验值对应一个文件;
  • 使用 -c命令判定该文件是否被篡改;
md5sum命令使用说明
md5sum不能针对目录生成
  • 所以在客户端的脚本中压缩一个目录并生成一个md5值
#2.压缩不同业务数据的存储文件汇总到指定文件夹内-为后续md5校验做文件准备cd /tar czf $Path/${Dest}.tar.gz  dingdan_data01/  os_data01/  suyuan_data01/#3.为客户端业务数据汇总的压缩包创建md5值md5sum $Path/*.tar.gz > $Path/client_${Date}

最后在客户端中执行脚本,成功满足备份需求

由于本次实验在规划中客户端汇总路径和服务端中rsync模块路径不一致,所以我踩了一个坑,在md5校验时候出现了问题,多了一步把文件和文件目录跟客户端保持一致的操作;

服务端手动验证成功

优化服务端验证文件的脚本

[[root@rsync-server_0.12[ /sharedata-101]# cat /scripts/rsync_server_huizong_jiaoyan.sh #/usr/bin/bash#1.定义变量Path=/sharedata-101Host=$(hostname)Addr=$(ifconfig eth1 |awk 'NR==2 {print $2}')Date=$(date +%F)#合并一个变量,大括号包裹的是变量,小括号包裹的是命令Dest=${Host}_${Addr}_${Date}#2.copy--->md5md5sum -c $(find /${Path}/ -type f -name "MD5_*") >> ${Path}/md5_client_queren#3.保留180天的备份数据find $Path/ -maxdepth 1 -type d -mtime +180 | xargs rm -f

最后给予执行权限:

[root@rsync-server_0.12[ /]# pwd/[root@rsync-server_0.12[ /]# cd /scripts/[root@rsync-server_0.12[ /scripts]  chmod +x rsync_server_huizong_jiaoyan.sh [root@rsync-server_0.12[ /scripts]# ls -l总用量 4-rwxr-xr-x 1 root root 428 7月   1 20:14 rsync_server_huizong_jiaoyan.sh
删除对应文件下的内容,再次执行脚本验证成功

邮件通知实验不做了,因为有拦截,未成功发送


其余客户端拉取对应配置

使用rsync远程传输模式将一台客户端根路径下的scripts文件夹下的文件传输到自己的根目录下:rsync -avz root@10.0.0.14:/scripts /

拓扑中web_01拉取脚本文件
//新的客户端需要设置rsync客户端免密文件且设置权限,才能符合脚本运行,也可使用变量解决[root@web01_0.21[ /scripts]# echo '123.com!' > /etc/rsync.client[root@web01_0.21[ /scripts]# cat /etc/rsync.client 123.com![root@web01_0.21[ /sharedata-101]# chmod 600 /etc/rsync.client

将传输过来的脚本文件稍作修改:

[root@web01_0.21[ /sharedata-101]# cat /scripts/rsync-push_0.12.sh #!/usr/bin/bash#定义变量(首字母大小写,区分系统命令Path=/sharedata-101Host=$(hostname)Addr=$(ifconfig eth1 |awk 'NR==2 {print $2}')Date=$(date +%F)#合并一个变量,大括号包裹的是变量,小括号包裹的是命令Dest=${Host}_${Addr}_${Date}#1.创建备份的目录#mkdir -p $Path/$Dest#2.压缩不同业务数据的存储文件汇总到指定文件夹内-为后续md5校验做文件准备cd /tar czf $Path/${Dest}.tar.gz  dingdan_data01/  os_data01/  suyuan_data01/#3.为客户端业务数据汇总的压缩包创建md5值md5sum $Path/*.tar.gz > $Path/MD5_${Addr}_${Date}#4.推送汇总的备份数据到rsync服务端rsync -vaz $Path/ rsync_backup@10.0.0.12::sharedata101 --password-file=/etc/rsync.client#4.保留7天的备份数据find $Path/ -maxdepth 1 -type d -mtime +7 | xargs rm -f
两个客户端分别执行脚本
服务端执行脚本结果显示正常

脚本的执行加入到定时任务

//两个客户端分别加入定时任务脚本(暂定每隔一分钟执行一次)[root@nfs_0.14[ /sharedata-101]# crontab -l*/1 * * * * sh /scripts/rsync-push_0.12.sh   &>/dev/null
脚本执行的变量文件格式中的IP地址没有了-无论是在客户端还是服务端

脚本执行后,变量中的Ip地址丢失的原因:因为在执行定时任务过程中,系统会开启一个子shell,子shell在执行会出现路径不一致,如图所示:/PATH路径和脚本中的PATH路径不一致

输入vim /etc/crontab查看定时任务默认的配置文件内容
//在脚本中加入PATH路径[root@nfs_0.14[ /sharedata-101]# echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin[root@nfs_0.14[ /sharedata-101]# cat /scripts/rsync-push_0.12.sh #!/usr/bin/bash#定义变量(首字母大小写,区分系统命令export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin   //加入系统路径Path=/sharedata-101Host=$(hostname)Addr=$(ifconfig eth1 |awk 'NR==2 {print $2}')Date=$(date +%F)#合并一个变量,大括号包裹的是变量,小括号包裹的是命令Dest=${Host}_${Addr}_${Date}#1.创建备份的目录#mkdir -p $Path/$Dest#2.压缩不同业务数据的存储文件汇总到指定文件夹内-为后续md5校验做文件准备cd /tar czf $Path/${Dest}.tar.gz  dingdan_data01/  os_data01/  suyuan_data01/#3.为客户端业务数据汇总的压缩包创建md5值md5sum $Path/*.tar.gz > $Path/MD5_${Addr}_${Date}#4.推送汇总的备份数据到rsync服务端rsync -vaz $Path/ rsync_backup@10.0.0.12::sharedata101 --password-file=/etc/rsync.client#4.保留7天的备份数据find $Path/ -maxdepth 1 -type d -mtime +7 | xargs rm -f

最后服务端和客户端分别加入定时任务

//Rsync 两个客户端:[root@web01_0.21[ /sharedata-101]# crontab -l*/1 * * * * sh /scripts/rsync-push_0.12.sh &>/dev/null//Rsync服务端:[root@rsync-server_0.12[ /sharedata-101]# crontab -l*/5 * * * * ntpdate 10.0.0.11 &>/dev/null*/1 * * * * sh /scripts/rsync_server_huizong_jiaoyan.sh &>/dev/null
观察客户端推送给服务端的内容格式正常,查看输出校验结果的文件也对

最终的服务端和客户端脚本文件总结

  • rsync服务端脚本文件
[root@rsync-server_0.12[ /sharedata-101] cat /scripts/rsync_server_huizong_jiaoyan.sh #/usr/bin/bash#1.定义变量Path=/sharedata-101Host=$(hostname)Addr=$(ifconfig eth1 |awk 'NR==2 {print $2}')Date=$(date +%F)#合并一个变量,大括号包裹的是变量,小括号包裹的是命令Dest=${Host}_${Addr}_${Date}#2.copy--->md5md5sum -c $(find /${Path}/ -type f -name "MD5_*") >> ${Path}/md5_client_queren#3.保留180天的备份数据find $Path/ -maxdepth 1 -type d -mtime +180 | xargs rm -f
  • rsync客户端脚本文件
//rsync客户端脚本文件[root@web01_0.21[ /sharedata-101] cat /scripts/rsync-push_0.12.sh #!/usr/bin/bash#定义变量(首字母大小写,区分系统命令export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binPath=/sharedata-101Host=$(hostname)Addr=$(ifconfig eth1 |awk 'NR==2 {print $2}')Date=$(date +%F)#合并一个变量,大括号包裹的是变量,小括号包裹的是命令Dest=${Host}_${Addr}_${Date}#1.创建备份的目录#mkdir -p $Path/$Dest#2.压缩不同业务数据的存储文件汇总到指定文件夹内-为后续md5校验做文件准备cd /tar czf $Path/${Dest}.tar.gz  dingdan_data01/  os_data01/  suyuan_data01/#3.为客户端业务数据汇总的压缩包创建md5值md5sum $Path/*.tar.gz > $Path/MD5_${Addr}_${Date}#4.推送汇总的备份数据到rsync服务端rsync -vaz $Path/ rsync_backup@10.0.0.12::sharedata101 --password-file=/etc/rsync.client#4.保留7天的备份数据find $Path/ -maxdepth 1 -type d -mtime +7 | xargs rm -f

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-07 17:05:29 HTTP/2.0 GET : https://f.mffb.com.cn/a/473563.html
  2. 运行时间 : 0.303192s [ 吞吐率:3.30req/s ] 内存消耗:4,637.49kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=5a25d6915f602ff9ef5274edae21002c
  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.000732s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000734s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000964s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002308s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000542s ]
  6. SELECT * FROM `set` [ RunTime:0.001926s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000603s ]
  8. SELECT * FROM `article` WHERE `id` = 473563 LIMIT 1 [ RunTime:0.008640s ]
  9. UPDATE `article` SET `lasttime` = 1770455129 WHERE `id` = 473563 [ RunTime:0.001422s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000319s ]
  11. SELECT * FROM `article` WHERE `id` < 473563 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001788s ]
  12. SELECT * FROM `article` WHERE `id` > 473563 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007301s ]
  13. SELECT * FROM `article` WHERE `id` < 473563 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.019068s ]
  14. SELECT * FROM `article` WHERE `id` < 473563 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.063427s ]
  15. SELECT * FROM `article` WHERE `id` < 473563 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.050731s ]
0.305213s