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 {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 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 {
daily
rotate 15
minsize 10M
sharedscripts
postrotate
  /usr/local/server/nginx/sbin/nginx -s reload
endscript
}

第一行:指明日志文件位置,多个以空格分隔
第二行:调用频率,有: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私房菜》,本文图取于此

转载于:https://www.cnblogs.com/dingxiaoyue/p/4926791.html

logrotate 进行nginx日志分割相关推荐

  1. 使用logrotate做nginx日志分割

    版权申明:转载请注明出处. 文章来源:http://bigdataer.net/?p=266 背景 nginx是一款非常优秀的网络代理工具,但是其日志管理有点缺憾:nginx的access_log会无 ...

  2. linux 日志切割 自带,[日志分割回滚] 使用linux自带的logrotate对nginx日志进行分割...

    logrotate日志分割配置: # cat /etc/logrotate.d/nginx /data/nginx_logs/*.access_log         #nginx日志所在目录 { n ...

  3. 使用logrotate管理nginx日志文件

    本文转载自:http://linux008.blog.51cto.com/2837805/555829 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日 ...

  4. logrotate管理nginx日志文件

    转自:http://linux008.blog.51cto.com/2837805/555829/ 描述:linux日志文件如果不定期清理,会填满整个磁盘.这样会很危险,因此日志管理是系统管理员日常工 ...

  5. 使用logrotate切割nginx日志文件,其他日志文件切割类似

    首先安装logrotate 以centos为例 yum -y install logrotate 如果不需要切割其他的日志则把 /etc/logrotate.conf中的 /var/log/wtmp ...

  6. linux nginx日志分割,Linux下自动分割Nginx日志文件(二)-----Cronolog

    一,简介:cronolog 是一个简单的过滤程序,读取日志文件条目从标准输入和输出的每个条目并写入指定的日志文件的文件名模板和当前的日期和时间.当扩展文件名的变化,目前的文件是关闭,新开辟的.cron ...

  7. Nginx日志分割处理

    为什么80%的码农都做不了架构师?>>>    一.配置nginx日志 location /html/ {         root  /home/web;         inde ...

  8. nginx日志分割脚本

    [root@localhost nginx]# cat logs/nginx.pid 5118 [root@localhost nginx]# kill -QUIT 5118 -QUIT : 关闭进程 ...

  9. Nginx优化与防盗链(隐藏版本号、配置缓存时间、日志分割、修改进程数、配置连接超时、使用gzip压缩页面、防盗链设置,fpm优化)

    文章目录 隐藏Nginx版本号 网页压缩 网页压缩配置 网页缓存时间 网页缓存时间设置 更改Nginx运行进程数 连接超时 nginx防盗链设置 盗链网站 配置httpd 日志分割 fpm参数优化 隐 ...

最新文章

  1. HttpURLConnection post请求 数据接收
  2. cmake (0)简介
  3. 信息收集——子域名收集
  4. 没有还款日期的借条会永久有效吗?
  5. 超震撼!你没见过的24张震撼照片
  6. Spring Cloud 7:Gateway
  7. 除了吃月饼,中秋节还能干啥?
  8. 关于windows注册表
  9. 【转】动态模型及其求解介绍–番外篇
  10. VB中窗体模块、标准模块、类模块的区别
  11. 黑客必学之社会工程学
  12. HashMap,Hashtabel,ConcurrentHashMap的区别
  13. mybatis 依赖于jdbc_面试BAT问的最多的27道MyBatis 面试题(含答案和思维导图总结)...
  14. 高端大气星级酒店展示网站静态模板
  15. ps:修改图片背景颜色
  16. windows操作系统服务器 网卡速度关联项
  17. 职场必备:Excel2016,官方推荐使用技巧
  18. 网络安全进阶篇(十一章-7)APP渗透测试篇(下)
  19. 牛客网第二场I--car(简单图论)
  20. 基于TextRank的抽取式文本摘要(英文)

热门文章

  1. asp.net treeView 节点 点击 变色
  2. 实战应对三种因素引起的交换故障
  3. 马拦过河卒(NOIP2002)
  4. Hadoop系列一:Hadoop集群分布式部署
  5. centos7修改主机名_25个步骤完成centos7系统从0到1部署
  6. Windows 技术篇-Edge浏览器升级方法实例演示,微软官方应用商店访问下载edge慢解决方法,edge安装包获取
  7. Oracle 数据库利用sql语句判断某个表是否是临时表实例演示,达梦数据库查询出所有临时表
  8. Python 技术篇-sha256()加密的使用方法,sha1、md5加密方法
  9. Python 技巧篇-如何避免python报错导致强制关闭窗口
  10. PyQt5 技术篇 - Qt Designer怎么用styleSheet设置按钮的背景