PbootCMS缓存目录runtime爆满_日志分析_自动清理脚本_磁盘监控
PbootCMS的runtime目录爆满是常见问题,主要原因是日志和缓存。完整解决方案。
runtime目录结构: - cache/:模板缓存、数据缓存。 - log/:运行日志(调试日志、错误日志)。 - temp/:临时文件。 - html/:静态页面缓存(开启html_cache时)。 - session/:session文件(如果配置用文件存储)。
爆满主要原因: 1. 调试日志未关:config.php里`'debug' => true`,每个请求写日志,访问量大的话几天几个G。 2. 错误日志大量写入:程序有bug,反复报错,日志快速增长。 3. 静态缓存:页面多的站点,html目录存大量静态HTML。 4. session文件:session没回收,大量小文件占inode。
立即清理: - 后台→缓存管理→清空全部缓存。 - 或命令行:`rm -rf /www/wwwroot/站点/runtime/cache/* /www/wwwroot/站点/runtime/log/* /www/wwwroot/站点/runtime/temp/*` - 静态缓存:`rm -rf /www/wwwroot/站点/runtime/html/*` - session:`rm -rf /www/wwwroot/站点/runtime/session/*`(会让所有用户掉线)。
根本解决: 1. 关闭调试日志:config.php里`'debug' => false`,`'log' => false`。生产环境必须关。 2. 分析错误日志:打开log目录下的日志,看是什么错误反复出现,修复bug,错误日志自然减少。 3. 调整缓存时间:`'cache_time' => 1800`(30分钟),缓存更快过期自动清理。 4. 静态缓存有效期设短:`'html_cache_time' => 3600`,或关闭静态缓存。 5. session用Redis存储:config.php里配置session_type=redis,不占磁盘。
自动清理脚本: ``` #!/bin/bash SITE="/www/wwwroot/www.example.com" # 清理7天前的日志 find $SITE/runtime/log -name "*.log" -mtime +7 -delete # 清理过期缓存 rm -rf $SITE/runtime/cache/* rm -rf $SITE/runtime/temp/* # 清理24小时前的session find $SITE/runtime/session -name "sess_*" -mmin +1440 -delete echo "清理完成: $(date)" ``` 保存为clean_pboot.sh,chmod +x,宝塔计划任务每天凌晨3点执行。
磁盘监控: - 宝塔→监控→磁盘,看使用率趋势。 - 设置告警:磁盘>80%发通知。 - 或写脚本监控: ``` #!/bin/bash USAGE=$(df /www | tail -1 | awk '{print $5}' | sed 's/%//') if [ $USAGE -gt 80 ]; then # 发邮件/微信通知 echo "磁盘使用率${USAGE}%" fi ``` - 定期检查runtime大小:`du -sh /www/wwwroot/站点/runtime`。
日志分析: - 用`tail -100 runtime/log/最新日志文件`看最近报错。 - `grep "ERROR" runtime/log/*.log | wc -l`统计错误数量。 - 常见错误:模板标签错误、数据库连接失败、文件不存在、权限不足。 - 修复错误后日志减少,runtime增长放缓。
inode满(小文件太多): - session和缓存产生大量小文件,可能inode用完但磁盘还有空间。 - `df -i`看inode使用率。 - 解决:定期清理session和cache,或用Redis存session。 - 格式化时inode数量固定,小文件多的场景考虑单独分区。
多站点管理: - 一台服务器多个PbootCMS站点,每个站点runtime独立。 - 脚本循环清理所有站点: ``` for site in /www/wwwroot/*/; do if [ -d "$site/runtime" ]; then rm -rf "$site/runtime/cache/*" "$site/runtime/log/*" fi done ```
预防: - 上线时关闭debug和log。 - 配置自动清理计划任务。 - 监控磁盘和inode。 - 定期分析错误日志,修复bug。 - 大站点用Redis做缓存和session,减少磁盘占用。
runtime爆满不是大问题,但不处理会导致磁盘满、网站挂掉。养成定期清理和监控的习惯,避免突发故障。

更新时间:2026-08-26 17:36:26
上一篇:模板文字修改后不生效怎么办_缓存与文件路径排查完整指南