Nginx日志轮替和压缩

Linuxnetos

Nginx日志轮替和压缩

随着项目上线,用户的访问量大大增加,nginx的日志也在增加,磁盘快要坚持不住了,今天就对nginx进行日志的压缩和轮替
我们nginx访问日志是位于/auditlog/today/

# /etc/logrotate.d
# vim nginx
/auditlog/today/*.log {
    create 0664 nginx root
    daily
    dateext
    copytruncate
    rotate 9999
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    olddir /auditlog/history   #没有改目录则需要创建
    postrotate
    [ -f /var/run/nginx.pid] && /bin/kill -USR1 `cat /var/run/nginx.pid`
    endscript
}
# /usr/local/nginx/sbin/nginx -s reload
测试是否成功,日志过大切不可执行此操作
#sudo logrotate -vf /etc/logrotate.conf
------------
参  数                      参  数  说  明 
daily                    日志的轮替周期是每天 
weekly                   日志的轮替周期是每周 
monthly                  日志的轮替周期是每月 
rotate 数字              保留的日志文件的个数。0 指没有备份 
compress                 日志轮替时,旧的日志进行压缩 
create mode owner group  建立新日志,同时指定新日志的权限与所有者和所属组。 
mail address             当日志轮替时,输出内容通过邮件发送到指定的邮件地址。
missingok                如果日志不存在,则忽略该日志的警告信息 
notifempty               如果日志为空文件,则不进行日志轮替 
minsize 大小             日志轮替的最小值。也就是日志一定要达到这个最小值才会轮替,否则就算时间达到也不轮替 
size 大小                日志只有大于指定大小才进行日志轮替,而不是按照时间轮替。 
dateext                  使用日期作为日志轮替文件的后缀。
sharedscripts            在此关键字之后的脚本只执行一次。 
prerotate/endscript      在日志轮替之前执行脚本命令。
postrotate/endscript     在日志轮替之后执行脚本命令。