宝塔面板批量清理网站垃圾缓存与日志

宝塔面板如何批量清理网站垃圾缓存与日志

服务器运行一段时间后,各网站的缓存文件、访问日志和系统日志会占用大量磁盘空间。
宝塔面板虽然提供了单站点清理功能,但面对几十个站点时手动操作非常低效。
本文从零开始,教你用两种方法(手动+脚本)批量清理,帮你彻底释放磁盘压力。

准备工作:确认空间占用和目录分布

开始操作前,先用下面的命令查看当前磁盘使用情况,确定哪些目录占用了空间:

df -h

然后进入宝塔的站点根目录(默认 /www/wwwroot),执行 du -sh * | sort -rh | head -20 快速找到体积最大的站点。

常见垃圾文件集中在这几个位置:

  • WordPress 缓存目录:/www/wwwroot/站点目录/wp-content/cache/
  • Nginx 访问日志:/www/wwwlogs/(每个站点有独立的 .log 文件)
  • PHP 会话文件(session):/tmp/sess_*/www/server/php/版本/var/session/
  • 网站后台生成的临时文件:如 Runtimetempdata/temp
注意:不要随意删除非缓存目录下的文件,以免破坏网站正常运行。

方法一:手动批量清理(新手首选)

进入宝塔面板左侧菜单栏的“文件”功能,在 /www/wwwroot 下可以同时选中多个站点目录,但逐个进入再删除缓存比较繁琐。
更快的做法是:

  1. 点击“终端”(或通过 SSH 登录服务器)。
  2. 执行以下命令一键删除所有 WordPress 站点下的缓存目录:
for dir in /www/wwwroot/*/wp-content/cache; do
    if [ -d "$dir" ]; then
        echo "正在清理: $dir"
        rm -rf "$dir"
        mkdir -p "$dir"
    fi
done

这条命令会遍历每个站点,如果存在 wp-content/cache 目录就删除它的所有内容,再重建一个空目录(防止权限问题)。

清理 Nginx 日志也可以批量操作:

# 清空所有 .log 文件但保留文件本身(避免日志收集工具报错)
truncate -s 0 /www/wwwlogs/*.log

如果日志文件不再需要,可以直接删除并重建空日志:

rm -f /www/wwwlogs/*.log
touch /www/wwwlogs/空的日志文件.log

方法二:使用 Shell 脚本一键清理(推荐设置计划任务)

如果你经常需要清理,写一个 Shell 脚本并设置宝塔的计划任务每月自动执行,既省力又避免忘记。

创建清理脚本

/root 目录下创建 clean_cache.sh 文件:

#!/bin/bash
# 清理所有站点的缓存和日志(宝塔环境)

# 1. 清理 WordPress 缓存
echo "=== 清理 WordPress 缓存 ==="
for cache_dir in /www/wwwroot/*/wp-content/cache; do
    if [ -d "$cache_dir" ]; then
        rm -rf "$cache_dir"/*
        echo "已清理: $cache_dir"
    fi
done

# 2. 清理 Nginx 访问日志(仅保留最近 7 天)
echo "=== 清理日志 ==="
find /www/wwwlogs -name "*.log" -type f -mtime +7 -exec rm -f {} \;

# 3. 清理 PHP 会话文件(超过 30 天未使用的)
echo "=== 清理旧会话 ==="
find /tmp -name "sess_*" -type f -mtime +30 -delete

# 4. 清理各个站点的 Runtime、temp 目录(常见于 ThinkPHP 等框架)
echo "=== 清理框架临时文件 ==="
find /www/wwwroot -type d -name "temp" -exec rm -rf {}/* \;
find /www/wwwroot -type d -name "Runtime" -exec rm -rf {}/* \;
find /www/wwwroot -type d -name "cache" ! -path "*/wp-content/cache*" -exec rm -rf {}/* \;

echo "=== 清理完成 ==="

保存后赋予执行权限:

chmod +x /root/clean_cache.sh

在宝塔面板中添加计划任务

  1. 进入宝塔面板 → “计划任务” → “添加计划任务”。
  2. 任务类型选择 Shell 脚本,任务名称填写“批量清理缓存与日志”。
  3. 执行周期选“每月”(例如每月1日凌晨4点),脚本内容输入:
bash /root/clean_cache.sh
  1. 点击“添加”即可。之后每月脚本会自动运行一次,清理过期文件。

避坑指南:常见错误与注意事项

  • 不要删除 .user.ini 或 .htaccess 文件:这些是网站伪静态配置文件,误删可能导致网站 500 错误。
  • 清理前确认是否需要保留日志:如果网站有安全审计要求,建议用 truncate 代替 rm,或者只删除超过指定天数的日志。
  • 某些缓存插件(如 WP Rocket)会生成 .htaccess 规则:如果删除缓存目录后访问异常,请先在后台清除缓存或重新激活插件。
  • 脚本中的 find 命令不要写错路径-exec rm -f {} \; 注意分号和反斜杠之间有一个空格,否则会报错。
  • 执行权限问题:确保脚本和计划任务以 root 用户运行,否则可能无法删除 /www/server/php 下的 session 文件。

效果验证:确认释放了多少空间

运行脚本或手动操作后,重新执行 df -h 对比清理前后磁盘使用率。
你也可以单独查看各日志目录的大小:

du -sh /www/wwwlogs/
du -sh /www/wwwroot/*/wp-content/cache/

正常情况下,WordPress 缓存目录能释放几百 MB 到数 GB,日志文件根据访问量也能释放数十 GB。
如果发现清理后某个网站页面变慢,检查该网站是否启用了 CDN 或缓存插件,重新生成缓存即可。

高频问题解答

Q:为什么不直接在宝塔后台“清理”按钮?
A:宝塔的清理按钮只能针对单个站点的部分缓存(如 WordPress 缓存、网站日志),无法自定义深度清理临时目录和日志,也无法批量处理所有站点。

Q:清理后网站图片等静态资源显示异常怎么办?
A:可能是你删除了生成缩略图的缓存文件夹(如 thumbthumbnail)。这类文件夹不要在脚本中统一删除,建议只删除明确已知的缓存目录。

Q:脚本可以放到宝塔定时任务中每天执行吗?
A:可以,建议每周或每月一次,过于频繁会让缓存插件不断重建缓存,增加服务器负载。日志文件每天滚动时自动压缩,删除过旧日志比较合适。

如果你正在处理宝塔面板批量清理网站垃圾缓存与日志,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
服务器带宽限速脚本防止爬虫恶意占用:服务器带宽限速脚本
下一篇
Nginx日志自定义格式分析海外访客来源
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意