首页 > linux基础 > nginx日志分割之logrotate
2015
04-10

nginx日志分割之logrotate

一般的情况下,我们对nginx的分割是通过shell+crontab来实现的,如:

然后在crontab里面每天0点0分执行这个脚本:

其实我们可以使用系统自带的logrotate来实现nginx的日志分割,感觉上更高级哦。

参数说明

daily 指定转储周期为每天
rotate 30 指定日志文件删除之前转储的次数,0 指没有备份,30 指保留30个备份
missingok  如果日志不存在则忽略该警告信息
notifempty 如果是空文件的话,不转储
minsize    最小的分割大小,文件容量一定要超过 10M 后才进行 rotate
compress 通过gzip 压缩转储以后的日志
prerotate:在启动 logrotate 之前进行的命令,例如修改登录文件的属性等动作,即我们先对/home/wwwlogs/*.log进行解锁。

postrotate:在做完 logrotate 之后启动的命令,例如重新启动 (kill -HUP) 某个服务

sharedscripts表示所有日志共享这个脚本,就是说他俩轮转完成后只执行一次这个脚本,默认情况下是每个脚本轮转完成就执行一次。

copytruncate,拷贝后截断。 把当前log拷贝后截断。可以理解为把内容拷贝走作为备份,然后清空当前文件。但是这有一个问题就是拷贝和截断之间会有时间差,存在丢数据的可能。 

然后我们可以使用logrotate -d来分析一下是否需要分割日志(只是测试 ,不会实际操作)。

如上可知,系统上没有任何一下日志rotate。

参考资料:

最后编辑:
作者:admin
这个作者貌似有点懒,什么都没有留下。

nginx日志分割之logrotate》有 1 条评论