详解nginx日志切割

对于一般的运维和技术来说,每天不是查日志就是在查日志的路上。所以日志的管理规范以及大小,就会影响查看的效率。那该如何合理的管理日志文件的大小呢?下面为大家详细讲解一下nginx日志切割。

创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都做网站、临邑网络推广、成都微信小程序、临邑网络营销、临邑企业策划、临邑品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供临邑建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

logrotate配置

logrotate 的主配置文件在/etc/logrotate.conf 主配置文件无需进行调整配置,保持默认即可。

如果使用了一键安装包配置的环境,可能在/etc/logrotate.d 下已经生成了文件nginx ,如果没有,则创建该文件:

vim /etc/logrotate.d/nginx
/data/weblogs/*.log {
weekly
rotate 7
missingok
dateext
nocompress
notifempty
sharedscripts
postrotate
[ -e /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}

配置选项说明:

/data/weblogs/*.log # 需要切割的日志文件,可以指定为某个文件名进行切割

weekly #指定转储周期为每周,对应的 daily:指定转储周期为每天,monthly:指定转储周期为每月

rotate 7 #指定日志文件删除之前转储的次数,0 指没有备份,7 指保留7 个备份

missingok #如果指定的目录不存在,logrotate会报错,此项用来关闭报错

nocompress # 这里是不进行压缩,如果需要将切割的日志进行压缩,可以设置为compress

notifempty #如果是空文件的话,不转储

sharedscripts #所有的日志文件都轮转完毕后统一执行一次脚本

postrotate/endscript #在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

postrotate 中的内容即为:nginx进程发送USR1信号使其重新打开日志并写入,不会重启服务,也不会导致最新写入的日志丢失

如果日志分类存放到不同的目录下可以这样设置:

/data/weblogs/*.log
/data/weblogs/cnyunwei/*.log
{
weekly
rotate 7
.....

测试是否正确执行

[root@aliyun weblogs]#/usr/sbin/logrotate -f /etc/logrotate.d/nginx

执行上述命令后可以查看当前日志文件下生成了www.susecui.cn.log-20160808 的文件,如果是开启了压缩,则会生成www.susecui.cn.log-20160808.gz 的压缩文件

创建任务计划执行命令

如果是设置了每天进行切割日志,那么就需要单独设置计划任务,默认设置为一周切割的情况下不需要设置计划任务,logrotate 主配置文件中已经定义了每周会进行轮询。

crontab -e

10 2 * * 6 /usr/sbin/logrotate -f /etc/logrotate.d/nginx

标题名称:详解nginx日志切割
网址分享:http://www.shufengxianlan.com/qtweb/news28/514028.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联