一、logrotate 生产上机器的日志量有可能增长非常快,日志文件很快就会撑满磁盘影响线上服务,那么就需要一个实用的日志管理工具来代替人工切割日志,linux自带的logrotate日志管理工具完全可以满足需求,logrotate可以自动对日志进行截断(或轮询)、压缩以及删除旧的日志文件,与定时任务crontab结合使用。先看看关于logrotate几个常用参数,其余参数可在命令行man logrotate查看:

配置参数 说明
monthly 日志文件将按月轮询。其它可用值为'daily','weekly'或者'yearly'
rotate num 一次将存储num个归档日志。对于第num+1个归档,时间最久的归档将被删除
missingok 在日志轮询期间,任何错误将被忽略,例如“文件无法找到”之类的错误
notifempty 当目标文件为空时,不进行轮询
create 644 root root 指定新创建的日志文件的权限,同时logrotate也会重命名原始日志文件
compress 轮询完成后,对归档的文件进行gzip压缩
delaycompress 和compress配合使用,不对最新归档的日志文件进行gzip压缩,以便工作人员对最新的归档日志进行查询
include 与nginx等的include作用一致,指定自定义配置文件的路径,瘦身主配置文件 ,规范化
postrotate/endscript 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行
postrotate/endscript 在所有其它指令执行之前,prerotate和endscript里面指定的命令将被执行

1.安装logrotate,在默认centos系统安装自带logrotate: 2.yum安装logrotate默认配置文件在/etc/下,查看默认配置文件格式: 主配置文件里面有设置默认的日志切割,我们可以根据这个格式进行添加我们所需求的日志切割配置,为了规范化配置文件,在主配置文件使用include参数: 在logrotate.d中自定义配置文件: 123.txt是用来测试配置生效的,可自行设置命令 3.手动运行logrotate验证配置文件: 可查看源日志文件目录生成了一个新的日志文件: 也可以在/root目录下查看是否产生配置文件中设置的123.txt 可看到配置文件是生效的 关于logrotate的参数可使用‘man logrotate’查看详情, -f是强制执行一次日志切割,-v是显示出具体的输出 以上配置模板相对比较通用,后期使用时可根据需求调整参数 4.此时,我们再执行一个yum的任务: 再强制执行logrotate: 此时再查看yum.log所在目录会产生一个压缩和一个新的归档日志文件,但是新的归档日志没有进行压缩,这就是我们设置的conpress和delaycompress参数的作用: 二、cron logrotate是通过cron每天触发执行的的,可看到cron的配置文件: 以此来记录每天要执行的logrotate的任务