logrotate参数说明

Linux系统中,软件运行的时候会产生日志文件,而这些软件本身对日志不进行分割或者压缩处理,久而久之会导致日志文件异常巨大,影响机器性能,活磁盘空间不足。而logrotate就是管理这些日志文件的工具,可以对单个日志文件或者某个目录下的文件按时间或大小进行切割、 压缩归档,还可以在切割之后运行自定义命令。

系统会按照cron计划运行logrotate,通常以天为基础单位,在linux系统中计划每天运行的脚本通常位于 /etc/cron.daily/logrotate。也有一些系统不同,比如Gentoo,路径是在/etc/cron.daily/logrotate.cron。如果你想让logrotate运行频率更高(比如销售),你只需要用一个脚本来让cron运行 /etc/cron.hourly/logrotate.cron就可以了。当logrotate运行的时候,它会读取自身的配置文件来决定需要分割日志文件的路径,分割频率及保留多少个日志存档。

logrotate.conf 主配置文件:
logrotate的主要配置文件位于 /etc/logrotate.conf,该文件会合并include /etc/logrotate.d下所有配置文件。使用ls命令可以看到目录下的文件,这些文件包含着各个软件分割日志的设置:

 logrotate实例

 

/var/log/apache.log {
   rotate 4
   daily
   size 100m
   compress
   delaycompress
   sharedscripts
   postrotate
   /usr/sbin/apachectl restart > /dev/null
   Endscript
}

 

rotate:指定分割日志的数量,该实例配置为4,如果日志数量已经到达4,当新的分割日志产生时,会删除最
老的一个。

daily  分割频率按天,还可以配置值:weekly monthly  yearly

 compress  对日志以gzip格式进行压缩

nocompress 不进行文件压缩

delaycompress:下次logrotate进行分割操作时再将本次分割的日志文件进行压缩操作

prerotate/endscript 在轮替之前执行之间的命令,prerotate与endscript成对出现。

postrotate/endscript  logrotate每次分割文件后会运行 postrotate 后的命令,作用是让应用重启,以便切换到新的日
志文件。

sharedscripts:

 这个命令的作用就是在运行postrotate里的脚本命令之前检查是否还有日志文件要分割,所有需要日志文件都分割完之后才会运行脚本命令。当然,如果没有日志文件需要分割,postrotate 里的脚本命令同样不会运行。例如,Nginx的access日志和error日志都被分割,那postrotate 里的脚本就会被运行两次,如果脚本命令里是重启服务器,那服务器就会被重启两次,这显然不是我们所希望的。这个时候就需要让logrotate在分割多个文件的时候只运行一次postrotate ,脚本设置命令sharedscripts

missingok  如果日志文件不存在,继续进行下一个操作

create  旧日志文件轮替后创建新的日志文件

dateext  轮替旧日志文件时,文件名添加-%Y %m %d形式日期,可用dateformat选项
扩展配置。
nodateext  旧日志文件不使用dateext扩展名,后面序数自增如"*.log.1"
dateformat   只允许%Y %m %d和%s指定符。注意:系统时钟需要设置到2001-09-09之
后,%s才可以正确工作

olddir 将轮替的文件移至指定目录下

ifempty 不论日志是否空,都进行轮替
notifempty 若日志为空,则不进行轮替

 

 

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页