推荐一款日志切割神器,很好很强大( 二 )
如果仅设定保留三个日志(即轮转3次)的话 , 那么执行第三次时 , 则 messages.3这个档案就会被删除 , 并由后面的较新的保存日志所取代!也就是会保存最新的几个日志 。
日志究竟轮换几次 , 这个是根据配置文件中的dateext 参数来判定的 。
看下logrotate.conf配置:
# cat /etc/logrotate.conf
# 底下的设定是 "logrotate 的默认值", 如果別的文件设定了其他的值 ,
# 就会以其它文件的设定为主
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/logrotate.d其实就是由/etc/logrotate.conf 所规划出来的目录 , 虽然可以将所有的配置都写入 /etc/logrotate.conf, 但是这样一来这个文件就实在是太复杂了 , 尤其是当使用很多的服务在系统上面时 ,每个服务都要去修改 /etc/logrotate.conf 的设定也似乎不太合理了 。
所以 , 如果独立出来一个目录 , 那么每个要切割日志的服务 ,就可以独自成为一个文件 , 并且放置到 /etc/logrotate.d/ 当中 。
其他重要参数说明:
compress #通过gzip 压缩转储以后的日志
nocompress #不做gzip压缩处理
copytruncate #用于还在打开中的日志文件 , 把当前日志备份并截断;是先拷贝再清空的方式 , 拷贝和清空之间有一个时间差 , 可能会丢失部分日志数据 。
nocopytruncate #备份日志文件不过不截断
create mode owner group #轮转时指定创建新文件的属性 , 如create 0777 nobody nobody
nocreate #不建立新的日志文件
delaycompress #和compress 一起使用时 , 转储的日志文件到下一次转储时才压缩
nodelaycompress #覆盖 delaycompress 选项 , 转储同时压缩 。
missingok #如果日志丢失 , 不报错继续滚动下一个日志
errors address #专储时的错误信息发送到指定的Email 地址
ifempty #即使日志文件为空文件也做轮转 , 这个是logrotate的缺省选项 。
notifempty #当日志文件为空时 , 不进行轮转
mail address #把转储的日志文件发送到指定的E-mail 地址
nomail #转储时不发送日志文件
olddir directory #转储后的日志文件放入指定的目录 , 必须和当前日志文件在同一个文件系统
noolddir #转储后的日志文件和当前日志文件放在同一个目录下
sharedscripts #运行postrotate脚本 , 作用是在所有日志都轮转后统一执行一次脚本 。 如果没有配置这个 , 那么每个日志轮转后都会执行一次脚本
prerotate #在logrotate转储之前需要执行的指令 , 例如修改文件的属性等动作;必须独立成行
postrotate #在logrotate转储之后需要执行的指令 , 例如重新启动 (kill -HUP) 某个服务!必须独立成行
daily #指定转储周期为每天
weekly #指定转储周期为每周
monthly #指定转储周期为每月
rotate count #指定日志文件删除之前转储的次数 , 0 指没有备份 , 5 指保留5 个备份
dateext #使用当期日期作为命名格式
dateformat .%s #配合dateext使用 , 紧跟在下一行出现 , 定义文件切割后的文件名 , 必须配合dateext使用 , 只支持 %Y %m %d %s 这四个参数
size(或minsize) log-size #当日志文件到达指定的大小时才转储 , log-size能指定bytes(缺省)及KB (sizek)或MB(sizem).
- 推出|三星可能会推出一款名为“Galaxy Smart Tag”的追踪器
- 短板|年底换机好推荐,真无短板机称号iQOO 5拿下了
- 机型|三星将取消Note系列旗舰身份 新机Note21仅一款机型
- 红米|红米K40Pro再确认,骁龙875+144Hz柔性直屏,又是一款香饽饽
- 最新|2020年12月最新购机推荐,这六款各有优点,实用党首选
- 持续|十一月推荐手机系列,iQOO今年多款机型热度持续
- 第一款骁龙888游戏手机:红魔6官宣
- 极客|极具黑科技含量的AI录音笔推荐:搜狗AI录音笔S1,极客最爱
- 猜到|vivo今年卖的最好的3款手机,最后一款是黑马,你猜到了吗?
- 算法|为什么长视频没有强算法推荐的产品