共计 1671 个字符,预计需要花费 5 分钟才能阅读完成。
最近正好要重新整理日志服务器,刚好需要对系统中的 logrotate 重新配置,因此就在此简单的写一下 logrotate 的一些基本配置参数,以便于查阅。
logrotate 的主要的配置参数文件是 /etc/logrotate.conf , 而 /etc/logrotate.d/ 目录中的写配置是为了平时管理方便在里面写的,它最后还是会被 /etc/logrotate.conf 所 include,最后由 wtmp 所执行。所以如果是一些通用的配置都可以写在 /etc/logrotate.conf 文件中,但是如果平时不建议对默认的 /etc/logrotate.conf 文件做太大的改动,至于 logrotate.conf 中的配置语法很简单:
日志文件名的绝地路径(如果是多个用空格隔开){
需要配置的参数
}
logrotate 功能实现的最重要的就是它的配置参数,这里列出一些常用的参数:
参数 | 说明 |
---|---|
compress | 启用压缩,指的是轮替后的旧日志,这里默认用的是 gzip 压缩的 |
compressoptions | 以 gzip - 9 的模式压缩 |
uncompresscmd | 解压日志,默认是 gunzip |
daily | 每天轮替选项 |
dateext | 轮替的日志文件会附加上一个短横线和 YYYYMMDD 格式的时间戳 |
delaycompress | 将以前的日志文件压缩推迟到下一次轮替 |
ifempty | 即使日志文件是空的也轮替 |
将轮替后的文件发送到指定 E -mail 地址 | |
copytruncate | 用于还在打开中的日志文件,把当前日志备份并截断,开始轮替 |
mailfirst/maillast | 向邮件发送轮替文件 / 轮替后历史文件(默认) |
monthly | 一个月轮替一次 |
nocompress | 如果在 logrotate.conf 中启用了压缩,这里是做不用压缩的参数 |
nomail | 不发送邮件到任何地址 |
ifempty | 如果日志时空的就不轮替 |
olddir directory | 轮替后 日志文件放入指定的目录,必须和当前日志文件在同一个文件系统 |
postrotate/endscript | 在做完轮替后的命令,两个关键字必须单独成行,使用的操作在 2 者之间相当于分组“{}”,注意的使用外部指令时要用绝对路径 |
prerotate/endscript | 在做轮替前的命令, 同上 |
rotate count | 轮替最多保留之前的数据几次,超出的将被删除或邮件接收,设为 0 则不保存 |
size size | 当日志增长到指定大小的时候开始轮替,它不会考虑 |
start count | 轮替文件名基于这个数字。 例如,指定 0 时,原日志文件轮替的备份文件以.0 为扩展名,如果指定 9,就直接从.9 开始跳过 0 -8 然后再继续向后轮替 rotate 指定的次数。 |
weekly | 如果当前的星期几比上次轮替的星期几少,或者过了一个多星期,就会发生轮替通常是在每周的第一天轮替,如果 logrotate 不是每天运行的,会在第一次有机会时进行轮替。 |
yearly | 如果当前年份不同于上次轮替的年份,则进行日志轮替 |
create mode owner group | 在轮替动作之后,postrotate 脚本执行之前,立即使用刚轮替的日志文件名创建日志文件。 MODE 指定日志文件的权限(0660 之类) OWNER 指定日志文件的属主 GROUP 指定日志文件的属组 |
extension ext | 日志文件可在轮替后使用指定的 EXT 扩展名。如果使用压缩,通常 EXT 后还会加上压缩文件的扩展名,通常是.gz。例如想把 mylog.foo 轮转为 mylog.1.foo.gz 而不是 mylog.foo.1.gz |
基本 logrotate 的常用参数就是这一些,如果要知道更多的参数使用方法可以查阅 man 8 logrotate。当然,现在很多的软件都有自带的 logrotate,如 apache 的 rotatelogs 等等,大多都是基于系统中的 logrotate 来实现日志的轮替,具体使用那一种要根据具体实际场景,不过系统中的 logrotate 几乎能满足大多数的场景中。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140261.htm
正文完
星哥玩云-微信公众号