1、logrotate
生产上机器的日志量有可能增加很是快,日志文件很快就会撑满磁盘影响线上服务,那么就须要一个实用的日志管理工具来代替人工切割日志,linux自带的logrotate日志管理工具彻底能够知足需求,logrotate能够自动对日志进行截断(或轮询)、压缩以及删除旧的日志文件,与定时任务crontab结合使用。先看看关于logrotate几个经常使用参数,其他参数可在命令行man logrotate查看:linux
配置参数 | 说明 |
---|---|
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参数的做用:
2、cron
logrotate是经过cron天天触发执行的的,可看到cron的配置文件:
以此来记录天天要执行的logrotate的任务nginx