Logrotate使用

$ rpm -qa|grep logrotate
logrotate-3.7.8-17.el6.x86_64
$ rpm -qi logrotate-3.7.8-17.el6.x86_64
Name        : logrotate                    Relocations: (not relocatable)
Version     : 3.7.8                             Vendor: CentOS
Release     : 17.el6                        Build Date: Thu 18 Jul 2013 06:08:08 PM CST
Install Date: Fri 03 Jan 2014 11:27:02 AM CST      Build Host: c6b8.bsys.dev.centos.org
Group       : System Environment/Base       Source RPM: logrotate-3.7.8-17.el6.src.rpm
Size        : 84835                            License: GPL+
Signature   : RSA/SHA1, Thu 18 Jul 2013 06:17:17 PM CST, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : https://fedorahosted.org/logrotate/
Summary     : Rotates, compresses, removes and mails system log files
Description :
The logrotate utility is designed to simplify the administration of
log files on a system which generates a lot of log files.  Logrotate
allows for the automatic rotation compression, removal and mailing of
log files.  Logrotate can be set to handle a log file daily, weekly,
monthly or when the log file gets to a certain size.  Normally,
logrotate runs as a daily cron job.

Install the logrotate package if you need a utility to deal with the
log files on your system.

logrotate设计用于简化日志文件管理任务。它可以实现自动轮转,压缩,删除日志文件.每个日志文件可以按天,按周或是按月进行管理或者当日志文件增长到一定大小进行管理。

通常情况下,logrotate以每日定时任务的方式运行。它不会再一天之内多次修改日志文件,除非针对这个日志文件设置的logrotate规则是按照日志文件的大小或是增加了-f参数强制日志轮转。

$ cat /etc/cron.daily/logrotate 
#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

相关参数使用:

-d --debug  开启调试模式

-v --verbose 详细输出

-f --force  强制轮转日志文件。可以用于调试新的配置文件

-m --mail <command> 发送邮件时使用什么命令,默认使用/bin/mail -s

-s --state 使用state file

配置文件案例

       # sample logrotate configuration file
       compress

       /var/log/messages {
           rotate 5
           weekly
           postrotate
               /usr/bin/killall -HUP syslogd
           endscript
       }

       "/var/log/httpd/access.log" /var/log/httpd/error.log {
           rotate 5
           mail [email protected]
           size 100k
           sharedscripts
           postrotate
               /usr/bin/killall -HUP httpd
           endscript
       }

       /var/log/news/* {
           monthly
           rotate 2
           olddir /var/log/news/old
           missingok
           postrotate
               kill -HUP ‘cat /var/run/inn.pid‘
           endscript
           nocompress
       }

compress  旧版本的日志文件默认使用gzip压缩

cpmpresscmd  指定使用什么命令来压缩

uncompresscmd 指定使用什么命令来解压缩文件,默认是gunzip

compressext  指定压缩的文件的后缀名称

compressoptions  指定压缩程序的参数。默认使用gzip -9

copy       复制一份日志文件,原有文件保持不变

copytruncate    复制一份日志文件后截断原有日志文件

create mode owner group, create owner group

daily      日志文件每天轮转一次

dateext     使用日期作为轮转后的日志文件的后缀。

dateformat   指定日期格式。只有%Y,%m,%d和%s可以使用。默认是%Y%m%d

delaycompress  推迟压缩

extension

ifempty     即使是空文件也轮转

include     包含文件或者目录

mail       发送邮件

mailfirst    发送刚刚被压缩的文件

maillast     mail the about-to-expire 文件

maxage     删除几天之前的轮转文件

minsize  size   当日志文件大于size设置的大小时,将日志文件进行轮转。

missingok   如果当一个日志文件消失时,继续轮转下一个日志文件

monthly    通常在一个月的头一天轮转日志文件

nocompress 旧版本的日志文件不压缩

nocopy   不复制原始日志文件

nocopytruncate       不截断原始日志文件

nocreate           不创建新的文件

nodelaycompress

nodateext

nomail

noolddir     轮转的日志文件和原始日志文件放置在同一个目录下

nosharedscripts

时间: 2024-09-28 19:35:58

Logrotate使用的相关文章

error: bad top line in state file /var/lib/logrotate.status 解决方法

发现日志切割并没有按计划执行,后来手动强制执行时,发现如下报错: [[email protected] logrotate.d]# logrotate -f httpd error: bad top line in state file /var/lib/logrotate.status [[email protected] logrotate.d]# 解决访求: 删除/var/lib/logrotate.status 这个文件即可解决. 解决后,最好再运行一下logrotate -f /etc

linux下logrotate 配置和理解

对于Linux 的系统安全来说,日志文件是极其重要的工具.系统管理员可以使用logrotate 程序用来管理系统中的最新的事件,对于Linux 的系统安全来说,日志文件是极其重要的工具.系统管理员可以使用logrotate 程序用来管理系统中的最新的事件.logrotate 还可以用来备份日志文件,本篇将通过以下几部分来介绍 日志文件的管理:1.logrotate 配置2.缺省配置 logrotate3.使用include 选项读取其他配置文件4.使用include 选项覆盖缺省配置5.为指定的

logrotate的日志轮转linux

案例:logrotate的日志轮转 针对admin.log文件,设置logrotate 每天轮转一次 保留3个备份 文件大于100k自动轮转 论转完的文件压缩创建权限0600,所有者root 所属组root 步骤: 1.首先查看logrotate包是否安装 [[email protected] log]# rpm -q logrotate logrotate-3.7.8-17.el6.x86_64 创建日志admin.log 因为本人虚拟机中没有admin.log这个文件 [[email pro

使用 Linux 自带的 logrotate 程序来控制日志文件尺寸

1. 编写配置文件,内容如下(以 Amadeus 系统为例): 编写配置文件,放在 /etc/logrotate.d/xxxx 下,其中 xxxx 是自己取的名字,无需后缀.例如 Amadeus 系统中此文件是 /etc/logrotate.d/amadeus /usr/local/tomcat_amadeus/logs/catalina.out { copytruncate daily dateext rotate 15 compress missingok size 2000M } 第一行是

logrotate关于日志轮询和分割

如果你的是源码包安装的服务,那么对于Linux服务器上的一些服务在运行当中产生的日志很重要,可以判断你的服务是否有异常等,但源码包安装的日志是没有日志的轮询或者说是切割能力的, 所以你就需要用到bash脚本来做或者用其他语言,但我这里来介绍下一个RHEL系列的工具 logrotate 他可以轻松的帮你实现日志的轮询.像RHEL和CentOS都默认安装了该服务.你可以直接 编辑/etc/logrotate.conf  来实现对相应日志文件的轮询: 例如典型的apache日志, 首选我来说下列子然后

logrotate切割日志后,新的日志还是写入到老的日志文件中

线上生产环境中,安装了dnsmasq,并记录日志.由于每一次dns查询都会生产日志,考虑到日志量越来越大,就用logrotate做日志轮转.配置如下: /var/log/dnsmasq/dnsmasq.log {         daily     //按天轮转日志         rotate 15 //保留15个log文件         compress  //压缩轮转后的文件         delaycompress          dateext         missingok

logrotate日志轮转

logrotate轮转 减小日志大小,降低分析难度 丢弃过期日志节省空间 结合cron每天执行 软件包 logrotate 配置文件 /etc/logrotate.conf /etc/logrotate.d 主配置文件及参数 /etc/logrotate.conf 配置文件格式 weekly     轮转频率,默认每周 rotate 4     保留4个轮转备份 create       执行轮转后创建新文件 compress   通过gzip压缩转储以后的日志 nocompress 不需要压缩

使用logrotate分割Tomcat的catalina日志

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

logrotate日志切割

最近在搭建日志收集平台,将linux的部分日志收集到elasticsearch上通过kibana进行搜索展现,基本上是标准的ELK架构,但是agent端复用了已有的flume.在功能测试的时候,是将本地messages日志备份出来对备份的日志进行了切割测试.经过一周测试终于完成了,当时的内心是: 日志的切割,采用了linux自带的logrotate进行日志的切割.配置就不放了,主要就是去切割指定的文件,然后将切割的文件转移到agent收集工具监控的目录,然后将文件权限改一下就行.当功能性测试通过

Syslog-ng+Rsyslog收集日志:logrotate日志切割、轮询(七)

很多软件都自带切割日志,比如tomcat可以按时间来命名.rsyslog可按日期生成文件,但是并不支持用"%$year%-%$month%-%$day%"这些变量来读取文件(目前版本号:rsyslog-8.17.0-1.el6.x86_64). 那么,就要用到日志轮询logrotate. 概要,配置. 全局配置:/etc/logrotate.conf 局部配置:/etc/logrotate.d/ 为了便于管理,自定义的配置都放到/etc/logrotate.d/里 使用. 创建文件to