磁盘满自动清理日志定时脚本部署:服务器日志太多占满磁盘?手把

为什么需要自动清理日志

服务器运行久了,/var/log 目录下的日志文件会不断堆积,尤其是 Nginx、MySQL、系统安全日志等。
如果不及时清理,磁盘很快就会被填满,导致服务异常、网站打不开,甚至系统无法写入新数据。
手动删除既麻烦又容易遗漏,最稳妥的办法是写一个脚本,交给系统定时自动执行。

编写日志清理脚本

在终端中执行以下命令创建脚本文件:

vi /usr/local/bin/clean_logs.sh

粘贴以下内容(按需修改日志路径和保留天数):

#!/bin/bash
# 清理超过7天的日志文件
LOG_DIRS=("/var/log" "/var/log/nginx" "/var/log/mysql")
DAYS=7

for dir in "${LOG_DIRS[@]}"; do
    if [ -d "$dir" ]; then
        find "$dir" -type f -name "*.log" -mtime +$DAYS -exec rm {} \;
        echo "$(date): 清理 $dir 中超过 $DAYS 天的日志文件" >> /var/log/clean_logs.log
    fi
done

保存退出后,给脚本加执行权限:

chmod +x /usr/local/bin/clean_logs.sh

注意:
如果你的日志文件有特殊后缀(如 .out、
.gz),
可以修改 -name "*.log" 里的通配符,
或追加多个 -o -name "*.out"。DAYS 变量控制保留天数,
可根据磁盘使用情况调整。

配置定时任务

使用 crontab 添加定时执行:

crontab -e

在文件末尾添加一行(每天凌晨2点执行):

0 2 * * * /usr/local/bin/clean_logs.sh

保存并退出。
检查定时任务是否添加成功:

crontab -l

看到刚才添加的行说明配置生效。
系统会在每天的 2:00 自动运行清理脚本。

避坑指南与常见问题

  • 不要删除正在写入的日志:脚本中使用 rm {} \; 会直接删除文件。如果日志文件正在被进程写入(比如 tail -f 或 rsyslog),删除后可能需重启服务。更稳妥的做法是使用 truncate -s 0 清空文件而不是删除。但清空后如果空间不释放(文件句柄未被释放),建议先确认服务缓存机制。本文脚本适用于日志轮转后已归档的旧文件。
  • 权限不够:脚本用 root 执行最安全。如果非 root 用户执行,需确保对日志目录有写权限。
  • 路径写错:脚本开始前先用 ls -d /var/log 确认目录存在,否则 find 会报错。
  • 没有删除 .gz 压缩包:如果系统自动用 logrotate 压缩了日志(.gz 后缀),需要额外添加 -name "*.gz" 条件。
  • 磁盘依然爆满:检查是否还有其他大文件(如 core dump、docker 容器日志)。执行 du -sh /var/log 定位。

验证脚本是否生效

先手动执行一次脚本:

bash /usr/local/bin/clean_logs.sh

执行后检查执行记录:

cat /var/log/clean_logs.log

如果看到时间戳和清理记录,说明脚本正常。
再检查磁盘空间:

df -h

对比执行前后的 Used 列,应该有明显减少。
如果执行后无变化,检查 find 条件是否匹配(比如日志文件日期不够老)。

以上步骤完成后,你的服务器就能每天自动清理过期日志,不再担心磁盘满的问题。
如果遇到特殊情况,可以随时调整脚本里的路径和保留天数,再重新部署即可。

分享到:
上一篇
老旧SSL协议拦截浏览器访问修复教程
下一篇
长尾关键词矩阵搭建提升谷歌自然流量
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 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意