跨境独立站宝塔面板定时任务自动清理日志完整教程
为什么要给跨境独立站设置日志自动清理
跨境独立站运行一段时间后,Nginx、PHP、网站访问日志会快速积攒,轻则占用磁盘空间,重则影响网站响应速度甚至导致服务崩溃。
手动删除日志费时费力,用宝塔面板的定时任务搭配清理脚本,就能实现每周、每月自动清理,省心又安全。
环境准备与确认事项
操作前请确认以下条件:
- 已安装宝塔面板(7.x 或 9.x 版本均可)。
- 拥有面板管理员权限。
- 知道网站日志存放路径。宝塔默认路径:
/www/wwwlogs/下每个站点有单独文件夹。 - 系统日志路径:
/var/log/或通过宝塔系统工具查看。
如果不确定日志大小,可以在 SSH 中执行 du -sh /www/wwwlogs/ 快速查看占用空间。
编写日志清理脚本
创建一个简单的 Shell 脚本,按天保留最近 7 天的日志,超过 7 天的自动删除。
- 使用宝塔面板的文件管理器或 SSH 进入
/root/目录。 - 新建文件
clean_logs.sh,内容如下:
#!/bin/bash
# 清理网站日志,保留最近 7 天
find /www/wwwlogs/ -name "*.log" -type f -mtime +7 -exec rm -f {} \;
# 清理系统日志(可选),保留最近 30 天
find /var/log/ -name "*.log" -type f -mtime +30 -exec rm -f {} \;
echo "日志清理完成:$(date)" >> /root/clean_logs.log
- 赋予执行权限:在 SSH 中执行
chmod +x /root/clean_logs.sh。
注意:以上脚本会删除所有匹配的日志文件,如果希望压缩后保留而非删除,可使用 gzip 命令替代。
在宝塔面板中创建定时任务
- 登录宝塔面板,点击左侧菜单 计划任务。
- 点击 添加任务。
- 填写任务信息:
- 任务类型:选择 Shell脚本。
- 任务名称:建议写“自动清理日志”。
- 执行周期:推荐 每天 凌晨 3 点(Nginx 日志一般按天切割,凌晨清理不影响统计)。选择 N分钟 或 时+分,设置如每天 3:00 执行。
- 脚本内容:粘贴
bash /root/clean_logs.sh。
- 点击 添加 保存。
添加完成后可以点击 执行 按钮手动运行一次,测试脚本是否正常工作。
避坑指南与常见问题
1. 日志文件被占用导致删除失败
如果 Nginx 或 PHP 正在写入某个日志文件,直接删除不会立即释放磁盘空间(进程仍持有文件句柄)。
建议先重命名文件再删除:可在脚本中先执行 mv 然后再删,或者配合 logrotate 工具。
宝塔面板已内置 logrotate,但独立站环境建议复用系统方案。
简单处理:在清理脚本中增加重启 Nginx 的命令:
systemctl restart nginx
这样会释放旧句柄,但会短暂中断服务。
生产环境需在低峰期执行。
2. 误删重要日志
清理脚本最好先测试:
在 SSH 中执行 find /www/wwwlogs/ -name "*.log" -type f -mtime +7 只查看不删除,
确认文件路径正确后再加入 -exec rm。
3. 宝塔任务未执行
检查面板计划任务日志(任务列表右侧更多 → 日志),或检查服务器 crontab 服务是否运行:systemctl status crond。
4. 跨境独立站特殊需求
有些独立站(如使用 Woocommerce、Shopify 自行搭建)会产生额外的应用日志,可单独增加清理路径。
验证清理效果
脚本执行成功后,可以:
- 执行
ls -lh /www/wwwlogs/查看日志是否变少。 - 查看
/root/clean_logs.log文件,确认每次执行都有记录。 - 在宝塔面板的 计划任务 中点击 日志,查看最近一次执行输出。
如果日志目录磁盘占用明显下降,说明定时任务已生效。
总结
通过宝塔面板定时任务配合 Shell 脚本,跨境独立站的日志自动清理就完成了。
这种方式无需安装额外工具,维护成本低。
建议按月检查一次日志增长情况,适当调整保留天数。
如果遇到异常清理,优先排查脚本路径和权限问题。