Logrotate

介绍

logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间。 一般centos系统已经自带安装好了。

logrotate是基于crontab运行的,其脚本是/etc/cron.daily/logtotate,日志轮转是系统自发完成的,实际运行时,logrotate会调用配置文件/etc/logrotate.conf。可以在/etc/logrotate.d目录里放置自定义好的配置文件,用来覆盖logrotate.conf的缺省值。

常用配置文件

/etc/logrotate.conf 主配置文件

/etc/logrotate.d/ 该目录里的所有文件都会自动被读入到logrotate.conf文件中

/etc/logrotate.conf 文件配置

# see "man logrotate" for details
# rotate log files weekly
weekly  #默认每周执行一次日志轮询

# keep 4 weeks worth of backlogs
rotate 4  #默认保留4个日志文件, 0 是没有备份

# create new (empty) log files after rotating old ones
create #自动创建新的日志文件,新的文件和原来的文件具有相同的权限

# use date as a suffix of the rotated file
dateext  #切割后的日志文件以当前日期为结尾,如xxx.log-20180810,如果注释掉,切割出来是按数字递增,即 xxx.log-1这种格式

# uncomment this if you want your log files compressed
#compress 是否通过gzip压缩转储以后的日志文件,如xxx.log-20180810.gz;如果希望日志文件压缩,请取消注释

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d #将logrotate.d目录里的文件加载进来

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly           #每个月切割一次,取代默认的一周
    create 0664 root utmp  #新建日志权限为0664,属主为root,属组为utmp
	minsize 1M       #文件大小超过1M后才会切割
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

参数介绍

使用过的例子

  • nginx

最后更新于