我的知识记录

PbootCMS后台自动清理缓存runtime_定时任务脚本_磁盘空间监控

PbootCMS的runtime目录存缓存和日志,不定期清理会占满磁盘。自动清理方案用宝塔计划任务+Shell脚本。

基础清理脚本: ``` #!/bin/bash # PbootCMS自动清理缓存 SITE_PATH="/www/wwwroot/www.example.com" # 清理模板缓存 rm -rf $SITE_PATH/runtime/cache/* # 清理日志 rm -rf $SITE_PATH/runtime/log/* # 清理临时文件 rm -rf $SITE_PATH/runtime/temp/* # 清理静态缓存(如果开启了) rm -rf $SITE_PATH/runtime/html/* echo "缓存清理完成: $(date)" ``` 把SITE_PATH换成实际站点路径。多站点就写多个SITE_PATH变量分别清理。保存为clean_cache.sh,上传到服务器,`chmod +x clean_cache.sh`加执行权限。

宝塔计划任务配置: - 宝塔→计划任务→任务类型"Shell脚本"。 - 任务名"PbootCMS清缓存"。 - 执行周期:每天凌晨3点。 - 脚本内容:直接写rm命令(不用写完整脚本文件),或`bash /path/to/clean_cache.sh`。 - 提交。每天自动执行。

进阶:清理前检查目录大小,超过阈值才清理,并发邮件通知: ``` #!/bin/bash SITE_PATH="/www/wwwroot/www.example.com" RUNTIME_SIZE=$(du -sm $SITE_PATH/runtime | awk '{print $1}') if [ $RUNTIME_SIZE -gt 500 ]; then rm -rf $SITE_PATH/runtime/cache/* rm -rf $SITE_PATH/runtime/log/* echo "runtime超过${RUNTIME_SIZE}MB,已清理" # 发邮件通知(需配mail命令) fi ``` 超过500MB才清理,避免频繁清。

PbootCMS本身的缓存配置: - config.php里`'cache_time' => 3600`,模板缓存1小时过期自动清理。 - `'debug' => false`和`'log' => false`,关闭日志,runtime增长慢。 - `'html_cache' => true`开启静态缓存,`'html_cache_time' => 3600`。 - 这些配置减少缓存生成,配合定时清理效果好。

清缓存后预生成:清完缓存第一次访问慢,因为要重新生成。脚本加一行爬取网站生成缓存: ``` wget -q -O /dev/null --recursive --no-parent --level=3 http://www.example.com ``` 放在清理命令后面,清完自动爬一遍生成缓存。页面多的话爬取时间长,放凌晨执行。

磁盘空间监控:另一个计划任务检查磁盘使用率,超过80%发告警: ``` #!/bin/bash USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//') if [ $USAGE -gt 80 ]; then echo "磁盘使用率${USAGE}%,请清理" # 发邮件或微信通知 fi ``` 每天执行一次,提前发现磁盘满的风险。

多站点管理:一台服务器跑多个PbootCMS站点,脚本用循环: ``` for site in /www/wwwroot/*/; do if [ -d "$site/runtime" ]; then rm -rf "$site/runtime/cache/*" rm -rf "$site/runtime/log/*" rm -rf "$site/runtime/temp/*" fi done ``` 遍历/www/wwwroot下所有站点,有runtime目录就清理。新增站点不用改脚本。

日志查看:计划任务执行日志在宝塔→计划任务→对应任务→"日志",看执行时间和输出。确认脚本正常运行。手动执行一次测试:`bash /path/to/clean_cache.sh`,看runtime目录是否清空。

注意事项: - rm命令路径要准确,写错路径会删错文件。先echo路径确认,再执行rm。 - 不要删runtime目录本身,只删子目录内容。 - 清理时间选凌晨低峰期,避免影响用户访问。 - 清缓存后网站暂时变慢,预生成缓存缓解。 - 有CDN的话,清完PbootCMS缓存还要清CDN缓存(可以用CDN API自动刷新)。

定期检查runtime大小,确认自动清理生效。如果清理后还是快速增长,检查是不是日志没关、缓存时间设太长,从源头减少缓存生成。

PbootCMS后台自动清理缓存runtime_定时任务脚本_磁盘空间监控

标签:

更新时间:2026-08-26 17:39:15

上一篇:宝塔面板修改网站根目录后404/500报错排查与修复

下一篇:学生个人网页作业评分标准与加分技巧_老师看重的5个关键点