使用logrotate配置日志轮询

logrotate配置

在/etc/logrotate.d/目录下创建一个配置文件例如nginx,文件内容如下:
nginx 示例如下:

/usr/local/nginx/logs/*.log {

        rotate 5             # 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。

        notifempty        #如果日志文件为空,轮循不会进行。

        daily                 #日志文件将按日轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’

       missingok          #在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。

        compress         #在轮循任务完成后,已轮循的归档将使用gzip进行压缩。

        sharedscripts   #表示多个日志文件之间 只执行一次logrotate

        postrotate        #在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。

        /usr/local/nginx/sbin/nginx -s reopen

        endscript

}

测试日志轮询配置:

先启动nginx;

立即截断日志:

# logrotate --force /etc/logrotate.d/nginx     ==》logrotate  -f 是强制执行一次

[root@iZbp17avth0ympurvz5xliZ sbin]# logrotate --force /etc/logrotate.d/nginx

[root@iZbp17avth0ympurvz5xliZ sbin]# ls /usr/local/nginx/logs/

access.log error.log error.log.1.gz nginx.pid

 

注意:

logrotate是会自动执行的,时间是4点的时候,也可以修改配置文件来修改时间,所以不用再设定crontab文件。

更改logrotate配置后使用 /usr/sbin/logrotate /etc/logrotate.conf  使logrotate生效

===========================================

近日有台机器log切割一直没有生效,使用 /usr/sbin/logrotate /etc/logrotate.conf 手动启动logrotate发现nginxlog路径不正确,是的nginx log没有切割,磁盘经常报警。

 

 

 

©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页