logrotate分割日志文件

昨天参与做的线上项目上线了,看了下log文件居然还没有分割,考虑到可能导致log文件很大造成性能下降,赶紧做了下日志分割。Linux下有个logrotate工具可以协助日志分割,只需要配置一下参数就可以了,非常方便,于是采用这种方式直接配置了一下。

我是用来做nginx日志文件分割的,我的配置文件如下:

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

/search/nginx/logs/access_log /search/nginx/logs/error.log{
daily
dateext
extension .log
create
rotate 60
notifempty
sharedscripts
postrotate
[ ! -f /usr/local/nginx/sbin/nginx.pid ] || kill -USR1 `cat /usr/local/nginx/sbin/nginx.pid`
endscript

}

字段的含义分别是:

daily 每天分割一次

dateext 表示用日志格式来表示日志文件,这样日志名就改成access-20140626

extension .log 表示在日志名后面再加上 .log后缀名  日知名编程access-20140626.log

create 表示分割好之后创建新的日志文件 即创建access.log

rotate 60 表示备份这么多份

notifempty 表示日志文件如果为空的话就不做分割

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

postrotate
[ ! -f /usr/local/nginx/sbin/nginx.pid ] || kill -USR1 `cat /usr/local/nginx/sbin/nginx.pid`
endscript

表示的是执行完logrotate之后,执行那个命令

还有很多其他的参数,具体可以 man logrotate查看。

我在配置完logrotate之后以为得置crontab文件 来让logrotate定时执行,于是:

crontab -e

59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx

结果第二天来看发现分割了两次,23:59的时候分割了一次,04:02的时候也分割了一次,才知道原来logrotate是会自动执行的,时间是4点的时候,也可以修改配置文件来修改时间,所以不用再设定crontab文件。

在拷贝和清空之间有一个时间差,所以可能会丢失部分日志数据。

logrotate分割日志文件

时间: 2024-10-10 01:37:33

logrotate分割日志文件的相关文章

linux之使用cron,logrotate管理日志文件

1) logrotate配置   logrotate 程序是一个日志文件管理工具.用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”.   我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行.   logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail . logrotate 的配置文件是 /etc/logrotate.conf  主要参数如下表: 参数                         功能   co

log4net 既要按日期分割日志文件,又要按文件大小分割。

<appender name="DebugAppender" type="log4net.Appender.RollingFileAppender"> <file value="log\debug\"/> <appendToFile value="true" /> <rollingStyle value="Composite" /> <datePatte

CentOS Linux使用logrotate分割管理日志

logrotate程序是一个日志文件管理工具.用于分割日志文件,删除旧的日志文件,并创建新的日志文件,起到"转储"作用.可以节省磁盘空间. logrotate命令格式: logrotate [OPTION...] <configfile> -d, --debug :debug模式,测试配置文件是否有错误. -f, --force :强制转储文件. -m, --mail=command :发送日志到指定邮箱. -s, --state=statefile :使用指定的状态文件.

每天自动分割Nginx日志文件

资料来源:https://www.centos.bz/2011/03/split-nginx-logfile-eveyday/ Nginx产生的日志都是存在一个文件,随着网站运行时间越长,日志文件的大小也在不断增长,这对我们想分析当天日志非常的不方便,所以需要每天把日志文件分割出来,并以时间命名. 创建日志分割脚本 1.登录SSH,创建cut_logs.sh文件 vi /root/cut_logs.sh 2.粘贴下面代码到cut_logs.sh,并保存 #!/bin/bash # The Ngi

Linux日志文件总管——logrotate

1.logrotate简介 日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到.对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题.除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事. logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循).压缩以及删除旧的日志文件.例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志.配置完后,logrotate的运

分析nginx大日志文件,python多线程必备! .

还在为分析nginx大日志犯愁吗?也许你会想到用shell处理,1G文件没有问题,上了10G文件,会消耗很久时间,用shell结合python多线程处理没有错. 什么都不用说了,直接上代码了 #!/usr/bin/python #coding:utf8 import threading     #载入多线程模块 import time          #载入时间模块 import os            #载入os模块 import shutil        #载入shutil模块 im

针对Apache服务的优化与配置(一)——日志文件优化

针对Apache服务的优化与配置 日志分割 日志文件分析 Apache压缩 设置Apache缓存 一.日志分割 Apache日志文件默认存放位置: /var/log/httpd/ 默认分为access log和error log 实施日志分割的目的: 随着网站的访问量增加,默认情况下Apache的单个日志文件也会越来越大. 日志文件占用磁盘空间很大 查看相关信息不方便 进行日志分割的方式: 使用自带的rotatelogs分割工具实现(循环读取日志文件) 第三方工具cronolog分割 1-1 r

使用logrotate分割Tomcat的catalina日志

切割catalian日志的方式有很多种,比如shell脚本的.cronolog或者通过配置log4j等等这些都可以实现.但今天我要介绍是使用logrotate来按日期生成日志. 原文是一个外国博主的文章,在这里分享给大家. 如果catalina.out的大小超过了2G,那么tomcat可能在没有错误提示的情况下崩溃.无法启动.所以为了避免出现这个问题,我们应该每天分割catalina.out. 如何每天自动的分割catalina.out或者大小达到5M时切割catalina.out 1.新建一个

Nginx按天分割轮询日志文件

使用linux系统自带的日志轮询工具logrotate logrotate 介绍 ------------------------------------- logrotate 程序是一个日志文件管理工具.用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做"转储".我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过cron 程序来执行. logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail . logrotate 的配置文件是/etc