当前位置:首页>Linux>Linux crontab 高级实战:防重复执行、优先级控制与批量管理(生产环境必备)

Linux crontab 高级实战:防重复执行、优先级控制与批量管理(生产环境必备)

  • 2026-04-16 19:50:28
Linux crontab 高级实战:防重复执行、优先级控制与批量管理(生产环境必备)

如果你的服务器出现过:

  • CPU突然100%
  • 磁盘被写满
  • 同一个脚本同时跑了5个实例

那很可能不是程序Bug,而是——crontab在“失控”运行

大多数人只会写crontab,但不会“控制crontab”。而在生产环境,这两者的差距,可能就是一次事故。

分享一个真实案例:某公司运维新手,给数据备份脚本设置了每天自动执行,却没做防重复处理。由于数据量非常大,备份脚本在指定的时间仍未结束,到了备份时间,新的备份任务又启动了,最终6个备份实例同时占用磁盘IO和CPU,导致数据库服务崩溃,业务中断近1小时,损失惨重。

搞定了crontab不执行的基础坑,真正的考验才刚刚开始——基础用法解决“能不能执行”,高级用法解决“执行得稳不稳、管得方不方便”。今天这篇文章,聚焦生产环境高频需求,手把手教你搞定定时任务防重复、优先级调整、批量管理,新增高手技巧和精准时间计算,让你的crontab彻底“可控”,新手也能直接落地。

一、核心前提:为什么需要crontab高级用法?

在生产环境中,定时任务绝不是“写一行命令就完事”,而是要面对各种复杂场景:

  • 脚本执行超时:比如大数据量备份、日志分析脚本,执行时间超过定时周期,导致多个脚本实例同时运行,耗尽服务器资源;
  • 任务优先级混乱:备份、日志清理等非核心任务,和业务监控、数据同步等核心任务同时执行,抢占核心任务的CPU、内存;
  • 批量管理繁琐:当定时任务达到几十上百个时,手动用crontab -e编辑、备份、回滚,不仅效率低,还容易误删、漏改;
  • 特殊时间需求:比如“每月最后一天执行”“每周工作日执行”“特定时间段内每小时执行”,基础时间表达式无法满足。

接下来,我们逐一解决这些问题,每一个方法都附带实操案例和可复制代码,兼顾专业性和实用性。

实战1:flock防止crontab重复执行(生产环境必备)

这是生产环境中最常用的crontab高级技巧,解决脚本执行超时导致的重复运行。

核心原理

flock(文件锁)的核心作用:给定时任务绑定一个“锁文件”,当任务执行时,会给锁文件加锁;如果下一个周期任务启动时,发现锁文件已被锁定(说明上一个任务还在执行),则直接跳过,不重复执行。任务执行完毕后,自动释放锁。

关键优势:无需修改原有脚本,直接在crontab命令中添加flock参数,简单高效,支持两种锁模式(共享锁、排他锁),生产环境首选排他锁(防止多个进程同时操作)。

分步实操(可复制代码)

场景:每天凌晨3点执行MySQL全量备份脚本,防止脚本超时重复执行。

方法1:crontab命令中直接使用flock(推荐,无需修改脚本)

# 核心格式:flock -xn 锁文件路径 -c "要执行的命令"# -x:排他锁(禁止其他进程加锁),-n:若锁已被占用,直接退出,不等待0 3 * * * flock -xn /var/lock/mysql_backup.lock -c "/usr/local/scripts/mysql_backup.sh >> /var/log/cron/mysql_backup.log 2>&1"

补充说明:在现代Linux系统中,/var/lock\通常是指向/run/lock\的软链接,重启后会清空,适合作为锁文件目录。需要注意的是,flock锁是基于文件描述符实现的,文件存在≠锁存在,即使锁文件存在,只要没有进程持有锁,就不会影响后续执行,无需手动删除锁文件。

方法2:将flock集成到脚本中(适合脚本复用场景)

修改mysql_backup.sh脚本,在开头添加flock锁逻辑:

#!/bin/bash# 定义锁文件路径(建议放在/var/lock/目录下,系统重启后自动清空)LOCK_FILE="/var/lock/mysql_backup.lock"# 加排他锁,若失败则退出,避免重复执行flock -xn $LOCK_FILE -c "# 以下是原有备份脚本内容/usr/bin/mysqldump -u root -p'123456' --single-transaction --all-databases | gzip > /data/backup/mysql_$(date +\%Y\%m\%d).sql.gzecho '备份完成时间:$(date +\%Y-\%m-\%d\ \%H:\%M:\%S)'"# 脚本执行完毕,锁自动释放

此时crontab命令无需再加flock,正常编写即可:

0 3 * * * /usr/local/scripts/mysql_backup.sh >> /var/log/cron/mysql_backup.log 2>&1

避坑指南

  • 锁文件路径必须是绝对路径,且选择有写入权限的目录(推荐/var/lock/,系统会自动清理崩溃导致的残留锁关联进程);
  • 不要省略-n参数:若不加-n,当锁被占用时,新任务会一直等待,直到锁释放,可能导致任务堆积;
  • 避免锁文件被误删:若锁文件被手动删除,会导致重复执行,可在脚本中添加“检查锁文件是否存在”的逻辑;
  • 多用户场景注意权限:不同用户的锁文件要区分命名(如mysql_backup_user1.lock),避免权限冲突。

实战2:nice/renice调整crontab优先级(避免资源抢占)

生产环境中,定时任务的优先级至关重要:比如核心业务的监控脚本(每5分钟执行一次),和非核心的日志清理脚本(每天凌晨执行),如果同时执行,日志清理脚本若占用大量CPU,会导致监控脚本执行延迟,影响业务告警。

nice命令的作用:调整进程的优先级,让核心任务获得更多CPU资源,非核心任务“礼让”资源,避免服务器资源被非核心任务占满;而renice命令可动态调整正在运行的进程优先级,更贴合生产环境应急场景。

核心原理

Linux系统中,进程的优先级用“nice值”表示,范围是 -20~19:

  • nice值越小,优先级越高(-20最高,只有root用户能设置);
  • nice值越大,优先级越低(19最低,普通用户可设置);
  • 默认情况下,进程的nice值为0,crontab任务继承系统默认优先级。

实操逻辑:给核心任务设置较低的nice值(如-5),给非核心任务设置较高的nice值(如10),确保核心任务优先执行;若进程已启动,用renice动态调整优先级,无需重启进程。

分步实操(可复制代码)

场景1:核心任务(业务监控脚本),设置高优先级(nice值-5)

# 每5分钟执行业务监控脚本,设置nice值-5(高优先级)*/5 * * * * nice -n -5 /usr/local/scripts/business_monitor.sh >> /var/log/cron/monitor.log 2>&1

场景2:非核心任务(日志清理脚本),设置低优先级(nice值10)

# 每天凌晨4点执行日志清理脚本,设置nice值10(低优先级)0 4 * * * nice -n 10 /usr/local/scripts/log_clean.sh >> /var/log/cron/log_clean.log 2>&1

补充:renice动态调整正在运行的任务优先级

若某定时任务已启动,且占用过多资源,无需终止进程,用renice动态调整优先级:

# 1. 查看脚本对应的进程ID(PID)pgrep -f "log_clean.sh"# 输出示例:12345# 2. 动态调整该进程的nice值为15(降低优先级)renice -n 15 -p 12345# 3. 验证调整结果ps -o pid,nice,cmd -p 12345

补充:查看任务优先级(标准跨系统写法)

执行以下命令,查看当前运行的crontab任务及其nice值,跨系统稳定可用:

# 查看所有crontab相关进程,包含nice值(NI列)ps -eo pid,ppid,ni,cmd | grep cron# 查看指定脚本的进程优先级(精准匹配)ps -o pid,nice,cmd -p $(pgrep -f "mysql_backup.sh")

避坑指南

  • 普通用户不能设置负nice值(会报错“nice: cannot set niceness: Permission denied”),只有root用户可设置;
  • 不要过度追求高优先级:将核心任务nice值设为-20(最高)可能导致其他系统进程资源不足,建议核心任务设为-5~0,非核心任务设为10~15;
  • 结合flock使用:高优先级任务若执行超时,仍需用flock防止重复执行,避免高优先级任务堆积占用资源;
  • renice仅对正在运行的进程有效:若进程终止后重新启动,优先级会恢复默认,需重新设置。

实战3:crontab批量管理与版本控制(高效运维)

当服务器上的定时任务达到10个以上,手动用crontab -e编辑、备份、回滚就会变得非常繁琐,甚至出现“改一个任务,误删另一个任务”的情况。批量管理的核心是「将定时任务集中到文件中,进行版本控制和批量操作」,提升运维效率。

核心方法:crontab文件批量导入/导出

crontab支持将任务导出到文件,也支持从文件导入任务,结合Git版本控制,可实现定时任务的备份、回滚、批量修改,适合多任务、多用户场景。

分步实操(可复制代码)

步骤1:导出当前crontab任务到文件(备份)

# 导出当前用户的crontab任务到文件(推荐命名格式:crontab_用户名_日期.bak)crontab -l > /backup/crontab/crontab_root_$(date +\%Y\%m\%d).bak# 导出指定用户的crontab任务(需root权限)crontab -u user1 -l > /backup/crontab/crontab_user1_$(date +\%Y\%m\%d).bak

步骤2:编辑crontab文件(批量修改)

创建一个新的crontab文件(如crontab_all.txt),将所有定时任务集中写入,格式和crontab -e编辑一致,统一配置环境变量,批量生效:

# crontab_all.txt 文件内容(示例)# 环境变量定义(统一配置,批量生效)PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binLOG_DIR=/var/log/cron# 核心任务(高优先级)*/5 * * * * nice -n -5 /usr/local/scripts/business_monitor.sh >> $LOG_DIR/monitor.log 2>&1# 备份任务(防重复+低优先级)0 3 * * * flock -xn /var/lock/mysql_backup.lock -c "/usr/local/scripts/mysql_backup.sh >> $LOG_DIR/mysql_backup.log 2>&1"0 4 * * * nice -n 10 /usr/local/scripts/log_clean.sh >> $LOG_DIR/log_clean.log 2>&1# 其他任务...

步骤3:将文件导入crontab(批量生效)

# 导入当前用户的crontab任务(覆盖原有任务,导入前建议先备份)crontab /backup/crontab/crontab_all.txt# 导入指定用户的crontab任务(需root权限)crontab -u user1 /backup/crontab/crontab_all.txt

步骤4:版本控制(Git管理,可选但推荐)

将crontab文件放入Git仓库,实现版本回滚、多人协作管理,避免修改错误无法恢复:

# 初始化Git仓库(若未初始化)cd /backup/crontabgit init# 添加crontab文件到仓库git add crontab_all.txtgit commit -m "2026-04-07 批量更新crontab任务,添加备份防重复和优先级配置"# 版本回滚(若修改错误,恢复到上一版本)git log# 查看提交记录,获取提交IDgit checkout 提交ID crontab_all.txt# 重新导入回滚后的文件crontab crontab_all.txt

避坑指南

实战4:crontab精准时间表达式(特殊场景必备)

基础的crontab时间表达式(分 时 日 月 周),无法满足部分特殊场景,比如“每月最后一天执行”“每周工作日执行”“特定时间段内每小时执行”,这部分我们结合实例,讲解精准时间写法和特殊场景解决方案,规避经典坑点。

基础回顾:crontab时间表达式格式

* * * * * 命令- - - - -| | | | || | | | +--- 星期几(0-7,0和7都代表周日)| | | +----- 月份(1-12)| | +------- 日期(1-31)| +--------- 小时(0-23)+----------- 分钟(0-59)# 常用特殊符号* :每单位时间执行(如每分钟、每小时)*/n :每n单位时间执行(如*/10 分钟,每10分钟)a-b :在a到b之间执行(如8-18 小时,每天8点到18点)a,b :在a和b时刻执行(如0,12 小时,每天0点和12点)

特殊场景实操(可直接复用)

场景1:每小时的15分、45分执行(精准分钟执行)

15,45 * * * * /usr/local/scripts/check_service.sh >> /var/log/cron/check.log 2>&1

场景2:每天8点到18点,每2小时执行一次(特定时间段内执行)

0 8-18/2 * * * /usr/local/scripts/backup_data.sh >> /var/log/cron/backup_data.log 2>&1# 解释:8点、10点、12点、14点、16点、18点,各执行一次

场景3:每周工作日(周一到周五),早上9点执行(排除周末)

0 9 * * 1-5 /usr/local/scripts/workday_task.sh >> /var/log/cron/workday.log 2>&1# 注意:1代表周一,5代表周五,1-5即周一到周五

场景4:每月最后一天执行(核心难点,避免31号、28号等问题)

直接用日期写31会导致小月(如4月、6月)无法执行,推荐两种方法,同时补充兼容性说明:

# 方法1:用date命令判断(推荐,兼容大部分系统)0 3 28-31 * * [ $(date +\%d -d tomorrow) = 01 ] && /usr/local/scripts/month_end_backup.sh >> /var/log/cron/month_backup.log 2>&1# 解释:判断明天的日期是否为01,若是则今天是当月最后一天# 补充:在精简系统(如Alpine Linux)中,`date -d`可能不可用,需要安装GNU coreutils或改用其他方案。# 方法2:用cal命令判断(简洁,适合CentOS/Ubuntu)0 3 * * * [ $(cal | awk 'NF==7{print $7}' | tail -1) -eq $(date +\%d) ] && /usr/local/scripts/month_end_backup.sh >> /var/log/cron/month_backup.log 2>&1

场景5:每季度第一天(1月、4月、7月、10月1号)执行

0 0 1 1,4,7,10 * /usr/local/scripts/quarter_backup.sh >> /var/log/cron/quarter_backup.log 2>&1

避坑指南(经典坑点)

  • 避免同时指定日期和星期几:crontab的规则是“日”和“星期”是OR关系,不是AND关系——当“日期”和“星期”同时限制时,crontab会在满足任意一个条件时执行(而不是同时满足),比如“0 0 1 * 1”,会在每月1号和每周一都执行;
  • 特殊日期优先用脚本判断:每月最后一天、闰年2月29号等场景,直接用时间表达式无法精准匹配,推荐用date命令判断;
  • 测试时间表达式:用crontab.guru网站(在线工具)验证时间表达式是否正确,避免写错导致任务不执行;
  • 注意精简系统兼容性:Alpine等精简系统的date命令功能有限,需提前安装依赖或调整写法。

实战5(高手技巧):timeout防止crontab任务卡死

生产环境中,除了任务重复执行,还有一个隐形坑——脚本卡死(如死循环、网络超时、资源耗尽导致脚本挂起),此时任务会一直占用资源,无法自动终止,影响后续任务执行。timeout命令可完美解决这个问题,限制任务最大执行时间,超时自动终止。

核心原理

timeout命令的作用:给指定命令设置一个“超时时间”,若命令在超时时间内未执行完成,timeout会自动终止该命令的进程,避免任务卡死占用资源。

分步实操(可复制代码)

场景:限制备份脚本最长执行时间为1小时(3600秒),超时自动终止,避免卡死。

# 核心格式:timeout 超时时间(秒) 要执行的命令# 结合flock使用,同时实现防重复和防卡死0 3 * * * flock -xn /var/lock/mysql_backup.lock -c "timeout 3600 /usr/local/scripts/mysql_backup.sh >> /var/log/cron/mysql_backup.log 2>&1"# 补充:超时后输出错误日志,方便排查0 3 * * * flock -xn /var/lock/mysql_backup.lock -c "timeout 3600 /usr/local/scripts/mysql_backup.sh >> /var/log/cron/mysql_backup.log 2>&1 || echo '备份脚本执行超时,已自动终止' >> /var/log/cron/mysql_backup_error.log"

避坑指南

  • 合理设置超时时间:根据脚本正常执行时间,设置比正常时间多30%的超时时间(如正常执行40分钟,设置60分钟超时);
  • 结合日志排查:超时后建议输出错误日志,方便后续排查超时原因(如数据量过大、网络问题);
  • 避免超时时间过短:若超时时间设置过短,会导致正常脚本被误终止,影响业务。

六、总结与延伸

今天我们掌握了crontab的5个核心高级用法,覆盖生产环境最常见的需求,结合真实事故案例和高手技巧,彻底解决crontab“失控”问题,核心要点总结:

  • 防重复执行
    :用flock文件锁,补充软链接和锁文件认知,避免误导,两种用法(crontab命令直接用、脚本集成),避免脚本超时重叠;
  • 优先级调整
    :用nice设置任务启动优先级,用renice动态调整运行中任务优先级,核心任务优先,避免资源抢占;
  • 批量管理
    :导出/导入crontab文件,结合Git版本控制,实现高效备份、修改、回滚,适配多任务场景;
  • 精准时间
    :掌握特殊场景时间写法,规避“日和星期OR关系”的经典坑,补充精简系统兼容性说明;
  • 高手技巧
    :用timeout限制任务最大执行时间,防止脚本卡死,提升任务稳定性。

这些技巧能让你的定时任务从“能运行”升级为“稳运行、好管理”,解决生产环境中90%的crontab高级问题,也能帮你规避类似“备份脚本堆积导致业务雪崩”的事故。

如果你觉得本文对你有帮助,欢迎点赞、推荐、转发,关注我,后续会分享更多Linux入门干货!

文 / 零距技术仓记录每一次真实的折腾 (#^.^#)🚀 想看到更多实用折腾技巧?👉 先关注💬 评论区说说你的经历或想看的内容👍 点赞表示支持🔁 顺手分享给也在折腾的人,让大家都少踩坑 😎

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-17 06:47:52 HTTP/2.0 GET : https://f.mffb.com.cn/a/485438.html
  2. 运行时间 : 0.089615s [ 吞吐率:11.16req/s ] 内存消耗:4,800.79kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=c7b60e1c1d8a3459674c8a980f6c44f5
  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.000555s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001042s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000326s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000313s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000470s ]
  6. SELECT * FROM `set` [ RunTime:0.000220s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000511s ]
  8. SELECT * FROM `article` WHERE `id` = 485438 LIMIT 1 [ RunTime:0.000429s ]
  9. UPDATE `article` SET `lasttime` = 1776379672 WHERE `id` = 485438 [ RunTime:0.008787s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000250s ]
  11. SELECT * FROM `article` WHERE `id` < 485438 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000478s ]
  12. SELECT * FROM `article` WHERE `id` > 485438 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000408s ]
  13. SELECT * FROM `article` WHERE `id` < 485438 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.004141s ]
  14. SELECT * FROM `article` WHERE `id` < 485438 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002882s ]
  15. SELECT * FROM `article` WHERE `id` < 485438 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002307s ]
0.091235s