Nginx日志切割工具logrorate

1、logrotate系统工具

linux自带logrotate工具

主流的linux系统版本,都默认安装logrotate包,作为分割日志的系统工具,可以方便将日志按周期(日,周,月)和大小进行分割,其核心配置文件如下:

/etc/logrotate.conf   #核心配置
/etc/logrotate.d/     #存储自定义配置目录

2、自定义nginx日志切割规则

[root@ ~]$ mkdir /etc/logrotate.d.0/
[root@ ~]$ vim /etc/logrotate.d.0/nginx    
/var/log/nginx/*.log {
        create 0664 nginx root
        daily                      
        rotate 365
        missingok
        notifempty
        compress                   
        nodelaycompress
        dateext
        sharedscripts
        postrotate 
	     /bin/kill -USR1 `cat /usr/share/nginx/run/nginx.pid 2>/dev/null` || true
        endscript
}

参数说明:

/var/log/nginx/*.log                #定义需要切割的nginx日志的位置
        create 0664 nginx root    #切割后创建日志文件的权限必须有一个root权限
        daily                      
        rotate 365                        #保留日志的天数
        missingok                        #忽略错误
        notifempty                      #空文件不滚动切割
        compress                   
        nodelaycompress
        dateext                            #日志压缩文件以当天日期做后缀
        sharedscripts
        postrotate 
         /bin/kill -USR1 `cat /usr/share/nginx/run/nginx.pid 2>/dev/null` || true   #刷新日志文件
        endscript

 

3、然后在/etc/cron.daily/下增加配置logrotate

#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

 !注意要是创建的nginx日志切割规则如果在/etc/logrotate.d/下面创建nginx文件定时是在凌晨三点多切断,所以我自定义到/etc/logrotate.d.0/nginx 

4、配置定时任务定时切割日志

 

[root@ ~]$ crontab -e
59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.d.0/nginx >/dev/null 2>&1

5、.执行流程


posted @ 2022-08-08 10:05  智杰  阅读(415)  评论(0编辑  收藏  举报
marquee
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生