logrotate 进行nginx日志分割
http://www.williamsang.com/archives/1254.html
日志分割常用方法:
- 自己写脚本分割
- 使用linux自带的logrotate
前者灵活,可以应对各种需求,自定义文件夹、文件名。后者配置简单,使用方便。
下面我们以分割nginx日志为例介绍一下使用logrotate分割日志实例。
logrotate简单介绍
logrotate使用cron按时调度执行,日志的执行过程原理为不断改名称:比如你有个access.log文件,需要保留4个日志文件,那么logrotate是这么轮转的:
access.log满足轮转条件?(调度时间,日志大小是否满足要求)如果需要轮转则进行下列步骤,否则跳过
access.log.3存在?如果存在则删除
access.log.2如果存在则改名为access.log.3
access.log.1如果存在则改名为access.log.2
access.log如果存在则改名为access.log.1
创建一个空的access.log文件
如下图所示:

logrotate配置文件一般在:
/etc/logrotate.conf 通用配置文件,可以定义全局默认使用的选项。
/etc/logrotate.d/xxx 自定义服务配置文件
我们可以看下/etc/logrotate.conf里面的内容
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# 一个星期轮转一次weekly#保留四个日志rotate 4# 轮转旧的日志文件后创建新日志文件create# 使用日期作为轮转日志的后缀dateext# 压缩存储日志#compress# 包含某个目录下的自定义日志轮转include/etc/logrotate.d# no packages own wtmp and btmp -- we'll rotate them here/var/log/wtmp{monthlycreate 0664 root utmpminsize 1Mrotate 1}/var/log/btmp{missingokmonthlycreate 0600 root utmprotate 1} |
我们新建一个/etc/logrotate.d/nginx来分割nginx日志,配置文件内容如下:
|
1
2
3
4
5
6
7
8
9
|
/data/logs/nginx/access/access.log/data/logs/nginx/access/default.log {dailyrotate 15minsize 10Msharedscriptspostrotate /usr/local/server/nginx/sbin/nginx-s reloadendscript} |
第一行:指明日志文件位置,多个以空格分隔
第二行:调用频率,有:daily,weekly,monthly可选
第三行:总共轮换多少个日志文件,这里为保留15个
第四行:限制条件,大于10M的日志文件才进行分割,否则不操作
sharedscripts用于指明以下是执行轮转前和轮转后自定义执行的命令,比如postrotate和endscript表示,轮转后,执行nginx的重新加载配置文件,避免日志轮转后不写日志。如果要轮转前执行某个命令可以使用prerotate代替postrotate即可,两者可同时存在。
可以通过man logrotate查看更多选项
默认logrotate是通过crontab定期执行的,我们也可以手动执行查看结果:
- # logrotate -vf /data/log/nginx/access.log
v选项表示查看详细执行过程
f表示强制执行日志轮转(不然时间不到,日志文件大小等条件不满足,不会执行)
强烈建议执行一下,了解下执行过程。
验证是否执行,查看cron的日志即可
- # grep logrotate /var/log/cron
参考:
- 《鸟个的linux私房菜》,本文图取于此
logrotate 进行nginx日志分割的更多相关文章
- 使用logrotate做nginx日志分割
版权申明:转载请注明出处. 文章来源:http://bigdataer.net/?p=266 背景 nginx是一款非常优秀的网络代理工具,但是其日志管理有点缺憾:nginx的access_log会无 ...
- nginx 日志分割(简单、全面)
Nginx 日志分割 因业务需要做了简单的Nginx 日志分割, 第1章 详细配置如下. #建议在mkdir /home/shell -p 专门写shell 脚本位置 root@localhost ...
- 使用logrotate管理nginx日志文件
本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日 ...
- nginx日志分割配置实例
Nginx没有类似Apache的cronolog日志分割处理的功能,但是,可以通过nginxNginx的信号控制功能利用脚本来实现日志的自动切割.请看下面的一个实例.Nginx对日志进行处理的脚本: ...
- nginx日志分割总结
nginx日志自己不会进行分个,所有日志都会累积的记录在 access.log,error.log 中,当请求量大,一天就能到几百兆,如果不进行分给,对日志的查看和写入性能都有影响. 1. 编写脚本n ...
- 使用Linux自带的命令logrotate对Nginx日志进行切割
说明: Nginx安装目录:/usr/local/nginx/Nginx日志目录:/var/log/nginx/error/*.log /var/log/nginx/access/w1/*.log / ...
- logrotate切割nginx日志
1 配置 使用系统自带的logrorate来切个nginx日志,位于/usr/sbin/logrotate 假设服务器上有两个网站的nginx配置分别如下: 去除其它配置信息,只保留了日志相关 A网站 ...
- nginx日志分割小脚本
nginx的日志一直是写在一个文件上面,运行久了之后文件会非常大,因此我们有必要对nginx的日志进行分割: 1 2 3 4 5 6 7 8 9 10 11 #! /bin/bash ACCESS ...
- nginx日志分割及备份
环境:centos7 nginx1.16.1 一.分割及备份的目的 nginx默认将日志信息写在一个文件中,时间一久日志文件中条目越来越多,文件越来越大,不方便查看,备份的时候也不需要备份重复的信息, ...
随机推荐
- Oracle rownum 分页, 排序
Oracle rownum 分页, 排序 什么是rownum, rownum的生成, rownum相关的符号操作 Rownum是oracle生成结果集时得到的一个伪列, 按照读出行的顺序, 第一条ro ...
- Gathering Initial Troubleshooting Information for Analysis of ORA-4031 Errors on the Shared Pool
In this Document Purpose Troubleshooting Steps References APPLIES TO: Oracle Database - Enterp ...
- SharePoint 自定义列表页面定制续—[保存模板后不能正常使用]
背景:SharePoint列表的四个基本页样式不是特别的好,所以很多情况都需要重新定制,然而经过定制后,又发生了新的问题,就是存成模板,再建新的列表的时候,定制的页面不能正常显示了. 1. 定制后的页 ...
- leetcode(58)-Range Sum Query - Immutable
题目: Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclu ...
- python简单线程和协程学习
python中对线程的支持的确不够,不过据说python有足够完备的异步网络框架模块,希望日后能学习到,这里就简单的对python中的线程做个总结 threading库可用来在单独的线程中执行任意的p ...
- Cookie、sessionStorage、localStorage的区别
共同点:都是保存在浏览器端,且同源的.区别:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递.而sessionStorage和localStora ...
- SQL解决"双重职位的查询"
双重身份问题: create table role_tab ( person char(5) not null, role char(1) not null ) insert into role_t ...
- Windows 2003 Server 标准版启动问题解决(资源转贴)
维护的系统之一是部署在windows2003 Server标准版的服务器上,可能是由于某个应用问题,导致远程重启失败,害得我在机房呆了一早晨,可算是够折腾的.最后按照官方文档解决,刚放文档地址是:ht ...
- echarts实现中国地图数据展示
在项目中运用到图形展示数据太常见了,echarts是一款使用率非常高的插件工具,很多大平台都是使用echarts: 一般运用到条形.折线.扇形图,今天说一说在中国地图上展示各地数据: 首先要准备中国地 ...
- 基于puppeteer模拟登录抓取页面
关于热图 在网站分析行业中,网站热图能够很好的反应用户在网站的操作行为,具体分析用户的喜好,对网站进行针对性的优化,一个热图的例子(来源于ptengine) 上图中能很清晰的看到用户关注点在那,我们不 ...