宝塔面板中配置php定时任务需选【php脚本】类型并填绝对路径,如 /www/wwwroot/site.com/cron.php,执行周期按需设置;日志清理可选shell命令 find ... -mtime +7 -delete 或php脚本遍历删除7天前日志文件。

在宝塔面板中配置计划任务,让PHP脚本按指定时间自动运行,并同步清理旧日志文件,避免磁盘空间被占满、任务重复执行或日志堆积导致排查困难。
添加PHP定时脚本任务
第一步:登录宝塔面板 → 左侧菜单点击【计划任务】→ 右上角点【添加计划任务】。
类型选【PHP脚本】,脚本路径填绝对路径,例如 /www/wwwroot/site.com/cron.php。注意路径必须以 / 开头,不能用相对路径或带 .php? 参数的URL地址,否则执行失败且无报错提示。
执行周期按需选择,如每天凌晨2点执行,就选【每天】→ 时间设为 02:00;若需每小时执行一次,选【每小时】→ 时间设为 00。
这一步操作起来很简单,直接把文件拖进去就行——但必须确认该PHP文件有可执行权限(chmod +x 不必要,但文件需能被PHP进程读取),且开头无需加 shebang(#!/usr/bin/env php)。
配置日志自动清理规则
方法一:用系统命令清理指定目录下的旧日志
类型选【Shell脚本】,内容填写:
find /www/wwwroot/site.com/runtime/log -name "*.log" -mtime +7 -delete
执行周期设为【每天】→ 03:00,确保在PHP脚本跑完后清理,避免删掉正在写入的日志文件。
方法二:用PHP脚本统一管理日志生命周期
新建一个 cleanup_logs.php 文件,内容如下:
然后在计划任务中新增一条【PHP脚本】任务,指向这个 cleanup_logs.php,执行时间建议比主业务脚本晚10分钟。
验证与调试关键步骤
① 点击任务右侧【执行】按钮,立即运行一次,观察【执行日志】里是否显示“成功”字样。
② 查看对应PHP脚本输出:如果脚本内有 file_put_contents('/tmp/test.log', date('Y-m-d H:i:s') . "\n", FILE_APPEND);,执行后检查 /tmp/test.log 是否有新增记录。
③ 清理任务验证:手动创建一个7天前的日志文件 touch -d "7 days ago" /www/wwwroot/site.com/runtime/log/old.log,再手动执行Shell清理任务,确认该文件被删除。
【务必关闭“禁止重复执行”开关】,否则当脚本运行时间超过设定间隔(比如脚本卡住跑了15分钟,而周期是10分钟),后续任务会被跳过,造成漏执行。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











