宝塔面板定时清理网站缓存文件的完整步骤
为什么要定时清理网站缓存文件
网站运行时(尤其是 WordPress、Typecho 等动态程序)会不断生成缓存文件、日志文件和临时文件。
如果不定期清理,这些文件可能占用几十 GB 空间,导致磁盘爆满、网站变慢甚至 500 错误。
手动清理费时费力,用宝塔面板的计划任务就能实现全自动清理。
第一步:确定需要清理的缓存目录
不同程序缓存位置不同,常见的有:
- WordPress 的
wp-content/cache/目录 - 静态页面缓存(如 WP Super Cache、W3 Total Cache 生成的文件)
- 图片缩略图缓存(如
wp-content/uploads/下的某些缓存文件夹) - 程序自身生成的日志文件(如
runtime/、logs/) - 宝塔面板自动生成的网站日志(
/www/wwwlogs/下的 .log 文件)
重要:不要直接清理整个网站根目录,只清理明确是缓存或日志的子目录,避免误删主题、插件或配置文件。
第二步:在宝塔面板创建清理脚本
- 登录宝塔面板,进入左侧菜单 计划任务。
- 点击 添加计划任务,任务类型选择 Shell脚本。
- 任务名称填写“清理网站缓存”(可自定义)。
- 执行周期根据缓存增长速度设置,一般每天一次(选择“每天”,时间建议凌晨 2-4 点)。
- 在脚本内容框中粘贴以下清理命令(根据你的网站路径修改):
# 清理 WordPress 缓存目录(如果存在)
if [ -d "/www/wwwroot/你的网站目录/wp-content/cache" ]; then
rm -rf /www/wwwroot/你的网站目录/wp-content/cache/*
fi
# 清理宝塔网站日志(保留最近 7 天,如果不需要保留可全部删除)
find /www/wwwlogs/ -name "*.log" -mtime +7 -exec rm -f {} \;
# 清理程序运行日志(以 ThinkPHP6 为例,清理 runtime 下的日志)
if [ -d "/www/wwwroot/你的网站目录/runtime/log" ]; then
rm -rf /www/wwwroot/你的网站目录/runtime/log/*
fi
注意:请将 你的网站目录 替换为实际的网站存放文件夹名(例如 tp6.com)。
如果不确定路径,可以在宝塔“网站”列表中点开对应网站的“根目录”获取。
- 点击 添加任务 保存。
第三步:关键避坑与注意事项
- 不要用
rm -rf /等危险命令,只对限定目录操作。 - 如果网站开启了 CDN 或云加速,清理缓存后最好在 CDN 后台也同步刷新预热。
- 部分插件(如 WP Rocket)有自己的缓存清理机制,直接用
rm删除可能造成文件权限问题,建议优先使用插件的 API 或 WordPress 自身缓存清理函数(通过 wp-cli)。如果不会 wp-cli,使用rm后需确认网站能正常生成新缓存。 - 日志文件建议保留最近 3-7 天,便于排查故障。上面脚本用了
-mtime +7只删除 7 天前的日志。 - 清理完成后第一小时要访问网站并检查是否有错误页面,确保没有误删必要文件。
第四步:验证定时任务是否生效
- 在宝塔计划任务列表中,找到刚创建的任务,点击右侧的 执行 按钮手动运行一次。
- 运行后点击 查看日志,能看到 Shell 脚本的输出。如果脚本无误,一般会显示“执行成功”(无输出也算成功)。
- 进入刚才清理的缓存目录,用
ls或宝塔文件管理器查看是否已清空。 - 连续观察一周,每周检查一次磁盘使用情况,确认磁盘占用不再持续增长。
高频问题 FAQ
Q:清理缓存后网站变慢了?
A:这是正常现象,因为缓存被清空后需要重新生成。一般在用户访问后会逐步恢复,高峰期建议避开白天执行。
Q:如何只清理单个网站的缓存?
A:在脚本中指定该网站根目录下的缓存子目录即可,不要用全局路径。
Q:脚本执行后没有效果?
A:检查两点:①脚本中的目录路径是否正确;②宝塔计划任务的执行用户是否为 www(默认就是);③如果是 .log 文件,确认后缀名正确。
总结
通过宝塔面板的计划任务+Shell脚本,可以轻松实现定时清理网站缓存文件,避免手动维护的麻烦。
关键是根据实际缓存目录编写安全、精准的删除命令,并留出验证时间。
如果你同时运行多个网站,可以每个网站建一条任务,或者在一个脚本里用循环处理多个目录。
遇到异常时先回看本文的避坑部分,基本都能解决。