本文介绍如何利用logrotate工具配置Nginx日志轮转,实现日志文件的定期自动管理。
前提条件: 确保您的系统已安装logrotate。大多数Linux发行版默认安装,否则请使用系统包管理器安装(例如,apt-get或yum)。
步骤一:创建配置文件
在/etc/logrotate.d/目录下创建一个名为nginx的配置文件:
sudo touch /etc/logrotate.d/nginx
步骤二:编辑配置文件
使用文本编辑器打开/etc/logrotate.d/nginx文件,并添加以下配置:
/var/log/nginx/*.log { daily # 每天轮转 missingok # 日志文件不存在时忽略 compress # 压缩轮转后的日志文件 delaycompress # 延迟压缩,直到下次轮转 notifempty # 日志文件为空时忽略 create 0640 www-data adm # 创建新日志文件,权限为0640,属主www-data,属组adm sharedscripts # 多个日志文件时,只执行一次postrotate脚本 postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 $(cat /var/run/nginx.pid) fi endscript }
配置参数说明:
- daily:每天轮转日志。可修改为weekly(每周)、monthly(每月)等。
- missingok:如果日志文件不存在,则忽略错误。
- compress:轮转后的日志文件将被压缩(.gz)。
- delaycompress:延迟压缩,直到下次轮转。
- notifempty:如果日志文件为空,则不进行轮转。
- create 0640 www-data adm:创建新的日志文件,权限为0640,所有者为www-data,组为adm。
- sharedscripts:确保即使有多个匹配的日志文件,postrotate脚本也只执行一次。
- postrotate … endscript:日志轮转后执行的脚本。此脚本向Nginx主进程发送USR1信号,触发Nginx重新打开日志文件。
步骤三:测试配置
运行以下命令测试配置是否正确:
sudo logrotate -d /etc/logrotate.d/nginx
-d选项用于测试模式,不会实际执行轮转操作。 如果一切正常,您将看到类似的输出,显示logrotate如何处理Nginx日志文件。 如有错误,请仔细检查配置文件。
步骤四:运行logrotate
要立即执行日志轮转,运行以下命令:
sudo logrotate /etc/logrotate.d/nginx
之后,logrotate将根据您设置的周期自动轮转Nginx日志。
通过以上步骤,您可以成功配置Nginx日志的轮转周期,方便日志管理和存储空间优化。 记得根据实际需求调整daily等参数。