Nginx访问日志定时清理 节省磁盘空间
运维知识
2026-07-31 18:26
123
Nginx日志增长的隐患
Nginx默认将所有访问记录写入access.log,持续写入会占用大量磁盘空间。若不及时清理,可能触发磁盘告警,严重时导致服务异常。
方案一:使用Logrotate自动轮转
Logrotate是Linux下优秀的日志管理工具,可对Nginx日志进行轮转、压缩和删除。
配置步骤
- 在/etc/logrotate.d/下创建nginx配置文件
- 指定日志路径、轮转周期、保留份数
- 使用compress参数压缩旧日志,节省空间
- 设置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进行预演,避免误删
标签:
- 服务器运维