Nginx配置日志切割

1. 进入/etc/logrotate.d目录

cd /etc/logrotate.d

2. 创建nginx日志切割脚本

vim nginx

3. 输入以下内容

* 注意 /home/data/nginx/logs/*.log 以实际服务器要存放日志文件为准

/home/data/nginx/logs/*.log {
    daily
    size 10M
    minsize 10M
    rotate 30
    missingok
    notifempty
    compress
    nodelaycompress
    copytruncate
    dateext
    dateformat -%Y-%m-%d
    dateyesterday
    postrotate
        if [ -f /home/data/nginx/logs/nginx.pid ];then
            kill -USR1 `cat /home/data/nginx/logs/nginx.pid`
        fi
    endscript
}

4. 配置说明

  • 按天切割
  • 文件大小为10M的时候才切割
  • 保留最近30天的日志文件
  • 切割中遇到日志错误忽略
  • 日志如果为空将不进行切割和压缩
  • 以gzip压缩
  • 不要将刚切割后的日志文件放到下个循环中进行压缩
  • 切割后的日志文件添加扩展名
  • 扩展名为年月日
  • 扩展名的年月日为昨天的日期
  • 在切割后执行 postrotate/endscript之间的命令,此处为热重启nginx

5. 配置crontab执行

crontab -e
00 00 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx
posted @ 2024-10-30 09:33  lujuhao  阅读(28)  评论(0编辑  收藏  举报