Nginx日志切割


01.安装配置logrotate:

  • yum install logrotate,安装logrotate。
  • vim /etc/logrotate.d/nginx,编辑一个nginx的日志切割文件,添加如下内容:
/opt/Apps/nginx/logs/*log {
    daily
    rotate 10
    dateext
    missingok
    notifempty
    compress
    delaycompress
    create 640 nginx adm
    sharedscripts
    postrotate
        [ -f /opt/Apps/nginx/nginx.pid  ] && /bin/kill -USR1 $(cat /opt/Apps/nginx/nginx.pid  2>/dev/null) 2>/dev/null || :
    endscript
}
  • /opt/Apps/nginx/logs,nginx日志的存储目录。
  • daily,日志切割的时间间隔,有以下几种配置:
    • daily,日志文件将按天轮循。
    • weekly,日志文件将按周轮循。
    • monthly,日志文件将按月轮循。
  • rotate ,存储多少个日志文件,对于超出的日志文件,时间最久的那个日志文件将被删除。
  • dateext,定义日志文件后缀为日期格式,比如nginx.log-20190707.gz。
    • 如果该参数被注释掉,切割出来是按数字递增,比如nginx.log-1.gz。
  • missingok,在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
  • notifempty:如果是空文件的话,不进行切割。
  • compress,在轮循任务完成后,已轮循的归档将使用gzip进行压缩。
  • delaycompress,指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。
  • create 640 nginx adm,以指定的权限和用书属性,创建全新的日志文件,同时logrotate也会重命名原始日志文件。
  • postrotate/endscript,在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。
  • postrotate和endscrip这两个关键字必须单独成行。
  • 执行以下命令测试logrotate是否正常工作:
logrotate -vf /etc/logrotate.d/nginx
  • logrotate不需要额外配置计划任务。
文档更新时间: 2020-03-12 19:13   作者:闻骏