磁盘满自动清理日志定时任务宝塔部署

服务器跑了一段时间后,最容易被忽略的“磁盘杀手”就是各种应用日志。
如果不加干预,access.log、error.log 这类文件能轻松吃掉好几十 GB,直到磁盘满了网站打不开、SSH 登不进去。
本文就针对宝塔面板环境,带零基础用户从零部署一个“磁盘满自动清理日志定时任务”,以后再也不用手动去删日志。

第一步:确认磁盘快满的“元凶”是谁

登录宝塔面板,在左边栏点击“监控”或者直接看首页的磁盘使用率。
如果发现磁盘使用超过 80%,就需要找出哪些目录在膨胀。

在宝塔的“文件”功能里,重点查看这几个常见日志存放目录:

  • www/wwwlogs/ – Nginx / Apache 访问日志和错误日志
  • www/server/panel/logs/ – 宝塔面板自身日志
  • var/log/ – 系统日志(部分环境会挂载到不同位置)

用 du -sh * 命令可以快速看每个文件夹的总大小,但宝塔文件页面也支持直接右键查看目录统计,新手更友好。

第二步:编写一个安全的日志自动清理脚本

在宝塔面板中,点击左侧“文件”进入 /root/ 目录(或者其他你喜欢的路径),新建一个文件,命名为 clean_logs.sh。
把以下内容粘贴进去:

#!/bin/bash
# 保留最近 7 天的日志文件,7 天前的自动删除
LOG_DIRS=(
    "/www/wwwlogs"
    "/www/server/panel/logs"
)

for dir in "${LOG_DIRS[@]}"; do
    if [ -d "$dir" ]; then
        find "$dir" -type f -name "*.log" -mtime +7 -exec rm -f {} \;
        echo "[$dir] 已清理超过 7 天的日志文件。"
    else
        echo "目录 $dir 不存在,跳过。"
    fi
done

脚本说明:

  • LOG_DIRS 数组里填你想清理的日志目录,可以根据自己的实际路径修改。
  • -mtime +7 表示删除修改时间在 7 天之前的文件。你也可以改成 +3 或 +14。
  • -exec rm -f {} \; 是删除动作,不要轻易改成 rm -rf,因为加了 -type f 只删文件,安全。

保存后,在“文件”里右键该脚本 → “权限” → 设置为 755(可执行)。
或者用终端执行 chmod +x /root/clean_logs.sh。

第三步:利用宝塔计划任务自动执行清理

  1. 进入宝塔面板左侧“计划任务”。
  2. 点击“添加任务” → 任务类型选择 Shell脚本。
  3. 任务名称写“自动清理过期日志”。
  4. 执行周期:每天,时间选凌晨 3:00(业务低峰期)。
  5. 脚本内容直接填写:bash /root/clean_logs.sh(注意路径和你存放的位置一致)。
  6. 点击“添加”即可。

添加后可以立即“执行”一次测试效果。

避坑指南与高频问题

1. 脚本执行后日志文件还在?
检查两件事:脚本权限是否 755?脚本里写的目录路径是否真实存在?可以用命令 ls -ld /www/wwwlogs 确认。

2. 删了日志但磁盘空间没释放?
可能有些文件被进程锁定,比如正在写入的 access.log。解决方法:修改脚本为 find ... -mtime +7 -exec truncate -s 0 {} \; 只清空内容不删文件。但注意会丢失旧日志。稳妥做法是设置日志轮转(logrotate),但作为快速方案,可以先 kill 进程再删(不推荐)。

3. 想保留最近 N 天的日志,但不确定 N 值?
可以先设置 +30 保留一个月,运行一周后观察磁盘变化再调整。

4. 宝塔计划任务里如何查看执行日志?
在计划任务列表里,点击对应任务的“日志”按钮,可以看到上次执行的标准输出和错误。

5. 除了日志,还有哪些地方容易吃掉空间?
Nginx 的临时文件(/tmp)、旧备份文件(/www/backup)、Docker 日志(需单独配置)等。建议定期检查。

验证清理效果

首次手动执行计划任务后,回到“文件”中查看日志目录大小是否减少。
或者用命令 df -h 看磁盘使用率。
如果原本 90%,清理后降到 70~80%,说明脚本生效。

也可以模拟一个旧日志文件来测试:touch -t 202301010000 /www/wwwlogs/test_old.log 然后再执行脚本,看该文件是否被删除。

总结

通过宝塔面板的“计划任务”配合一个简单的 shell 脚本,就能实现“磁盘满自动清理日志定时任务部署”。
对零基础用户来说,关键点就三个:找到日志目录、写出正确的 find 删除命令、设置好执行周期。
以后哪怕日志再疯狂增长,系统也能自动腾出空间,再也不用半夜被磁盘报警吵醒。
如果你觉得 7 天太短或太长,直接改脚本里的 +7 数字就行。
遇到异常时,先看计划任务的日志输出,再对照避坑部分排查。

分享到:
上一篇
老旧TLS协议拦截浏览器访问Nginx修复脚本
下一篇
长尾关键词矩阵搭建提升谷歌自然搜索流量
1
系统公告

泽御云中秋国庆双节活动上线:新购8折,拼团3.99元起

尊敬的用户:
泽御云“月满中秋·礼贺国庆”双节活动现已开启,活动时间为2026年9月23日至10月10日。 活动期间可享以下福利:
1. 常规云服务器新购使用优惠码“泽御中秋国庆同乐”,符合条件的订单享8折优惠。
2. 香港精品云服务器5人拼团低至3.99元,部分4核4G套餐3人拼团年付388元,续费同价。
3. 新用户购买年付云服务器,符合活动规则可赠送2个月使用时长。
4. 老用户续费季度赠15天,续费年度赠2个月;活动期间升级配置免收配置迁移手续费。
5. 推荐好友成功下单,符合条件的推荐人可获赠7天服务器使用时长。
6. 活动期间享宕机补偿标准翻倍、简单网站迁移协助及技术工单优先处理权益。
温馨提示:优惠码不适用于拼团套餐、活动轻量产品、年付订单及续费订单;拼团套餐为独立特价活动,不与赠时类福利叠加。赠送时长不可折现、退款或跨账户转移,具体规则以活动页面说明为准。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意