配置详解
logrotate是基于crond服务(定时任务)来运行的,
有几个重要的配置:
1、/etc/logrotate.conf(主配置)和/etc/logrotate.d/*(子配置)
/etc/logrotate.conf是全局配置,logrotate.conf里面包含include /etc/logrotate.d这句,加载子配置文件的意思,说明/etc/logrotate.d/目录下是具体的配置,一般是以服务名称命名,比如yum等配置。主配置和子配置有冲突时,以子配置的规则为准。
logrotate 定义日志信息配置选项:
compress --> 压缩日志文件的所有非当前版本
daily,weekly,monthly --> 按指定计划轮换日志文件
delaycompress --> 压缩所有版本,除了当前和下一个最近的
endscript --> 标记 prerotate 或 postrotate 脚本的结束
errors "emailid" --> 给指定邮箱发送错误通知
missingok --> 如果日志文件丢失,不要显示错误
notifempty --> 如果日志文件为空,则不轮换日志文件
olddir "dir" --> 指定日志文件的旧版本放在 “dir” 中
postrotate --> 引入一个在日志被轮换后执行的脚本
prerotate --> 引入一个在日志被轮换前执行的脚本
rotate 'n' --> 在轮换方案中包含日志的 n 个版本,指定保存几个备份文件
sharedscripts --> 对于整个日志组只运行一次脚本
size='logsize' --> 在日志大小大于 logsize(例如 100K,4M)时轮换create mode owner group --> 指定滚动会后,创建新文件的权限、属主、属组
nocreate --> 在滚动后不创建新日志
dateformat --> 指定备份文件时间后缀的格式,只能用%Y %m %d %s
nomail --> 在间滚动的时候,不发生日志
logrotate 命令格式:
logrotate [OPTION...]
logrotate [-dv] [-f|--force] [-s|--state file] config_file
-d, --debug :debug模式,测试配置文件是否有错误。
-f, --force :强制转储文件。
-m, --mail=command :压缩日志后,发送日志到指定邮箱。
-s, --state=statefile :使用指定的状态文件。
-v, --verbose :显示转储过程。
#cat /etc/logrotate.conf
weekly //默认每一周执行一次rotate轮转工作
rotate 4 //保留多少个日志文件(轮转几次).默认保留四个.就是指定日志文件删除之前轮转的次数,0 指没有备份
create //自动创建新的日志文件,新的日志文件具有和原来的文件相同的权限;因为日志被改名,因此要创建一个新的来继续存储之前的日志
dateext //这个参数很重要!就是切割后的日志文件以当前日期为格式结尾,如xxx.log-20131216这样,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-1这种格式
compress //是否通过gzip压缩转储以后的日志文件,如xxx.log-20131216.gz ;如果不需要压缩,注释掉就行
include /etc/logrotate.d
# 将 /etc/logrotate.d/ 目录中的所有文件都加载进来
/var/log/wtmp { //仅针对 /var/log/wtmp 所设定的参数
monthly //每月一次切割,取代默认的一周
minsize 1M //文件大小超过 1M 后才会切割
create 0664 root utmp //指定新建的日志文件权限以及所属用户和组
rotate 1 //只保留一个日志.
}
# 这个 wtmp 可记录用户登录系统及系统重启的时间
# 因为有 minsize 的参数,因此不见得每个月一定会执行一次喔.要看文件大小。
标签:文件,etc,--,指定,nginx,logrotate,日志
From: https://www.cnblogs.com/yechangyao/p/18119984