logrotate 日志分割工具的配置使用

本文详细介绍了Linux下的日志管理工具Logrotate的功能、使用方法及配置技巧,包括如何通过Logrotate实现日志文件的自动分割、压缩、删除等功能,以及如何通过配置文件自定义Logrotate的行为,确保系统日志的高效管理和维护。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Logrotate是linux下的一个用于对日志文件分割,压缩或者发送邮件的的工具。当系统中的某个进程会定期生成大量的log文件时,logrotate可以定期(每天一次,每周一次等等)自动化的将这些log文件进行分割压缩,删除等操作。

         一般情况下,logrotate是一个在/etc/corn.daily下的每天执行的cronjob,logrotate在一天之中也不会对log文件进行多次的修改,除非log文件压缩的标准时基于文件的大小或者使用了-f参数强制修改。

Logrotate的命令格式为:

logrotate [-dv] [-f|--force] [-s|--state file] config_file+

参数说明:

-v 输出执行过程说明

-d 开启debug模式

-f 强制执行操作,当我们手动修改/etc/logrotate.d目录下的配置是,加上该参数使得修改立即生效

-s 告诉logrotate使用一个备用的状态文件,默认状态文件时/var/lib/logrotate/status

 

举例说明logrotate的使用:

假设现在自己写的一个脚本在不断的生成monitor.log的日志,随着时间的增长该日志文件也将变得越来越大,为了便于处理,我们不希望该日志过大,因此我们希望该日志按照每天一次的分割频率分割成若干个小文件。

首先进入/etc/logrotate.d目录下,新建一个文件。命名问getMap,编辑该文件

/root/zzx/monitor.log{
notifempty
daily
rotate 5
}

第一行:是日志文件所在的路径

第二行:notifempty表示当日志文件为空的时候就不需要分割了。若为空也需要分割,则填ifempty即可。

第三行:daily表示每天一次,weekly表示每周一次,monthly表示每月一次

第四行:rotate n表示日志在被rotate n次之后,就的日志将被移除或者mail到配置的地址中去,如果n=0,则表示直接移除旧的文件。

 

如果希望rotate仅仅在日志文件过大时执行,则可以加上一行

size <size>

表示在日志文件超过size的大小时,执行操作。

 

一个更复杂的例子

/data/log/keystone/*.log {
    daily
    missingok
    rotate 5
    compress
    minsize 100k
    create 640 keystone keystone
    postrotate
        if dpkg-vendor --derives-from ubuntu ; then
            service keystone restart >/dev/null 2>&1 || true
        else
            invoke-rc.d keystone restart
        fi
    endscript
}

其中compress表示对日志进行压缩操作

Create表示需要新建日志文件,指明用户组和用户以及文件权限

Postrotate/endscript包围的是在rotate完成之后需要执行的脚本,对于有些进程,需要重新启动以便生成新的日志文件,否则将会出错。其中的脚本即为shell脚本,按照shell脚本的语法编写即可。

         在配置完成之后,执行:

执行logrotate:

/usr/sbin/logrotate -vf /etc/logrotate.conf

若没有报错,查看/root/zzx/下面,会生成monitor.log.1文件,说明配置成功了。







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值