Nginx访问日志定时清理 节省磁盘空间
运维知识 2026-07-31 18:26 122

Nginx日志增长的隐患

Nginx默认将所有访问记录写入access.log,持续写入会占用大量磁盘空间。若不及时清理,可能触发磁盘告警,严重时导致服务异常。

方案一:使用Logrotate自动轮转

Logrotate是Linux下优秀的日志管理工具,可对Nginx日志进行轮转、压缩和删除。

配置步骤

  1. 在/etc/logrotate.d/下创建nginx配置文件
  2. 指定日志路径、轮转周期、保留份数
  3. 使用compress参数压缩旧日志,节省空间
  4. 设置postrotate命令让Nginx重新打开日志文件

常用参数

  • daily:每天轮转一次
  • rotate 30:保留最近30份日志
  • compress:启用gzip压缩
  • missingok:日志缺失时忽略

方案二:通过Cron脚本清理

对于简单场景,可编写脚本并使用Crontab定时执行。

示例:find /var/log/nginx -name 'access.log*' -mtime +30 -delete

该命令删除30天前的日志文件,适合批量清理。

运维建议

  • 定期检查磁盘占用,及时调整保留策略
  • 确保脚本有执行权限,并在crontab中正确配置
  • 可使用logrotate -d进行预演,避免误删

标签:

  • 服务器运维