简介:

日志 记录了程序运行时各种信息
通过日志可以分析用户行为,记录运行轨迹,查找程序问题。
可惜磁盘的空间是有限l的
日志轮转就像飞机里的黑匣子,记录的信息在重要也只能记录最后一段时间发生的事。
为了节省空间和整理方便,日志文件经常需要按!时间或! 大小等维度分成多份,删除时间久远的日志文件。

工作原理

按照配置进行轮转

配置文件种类

主文件配置: /etc/logrotate.conf(决定每个日志如何轮转)
子配置文件夹:/etc/logrotate.d/*(自定义配置,便于管理)

观察主文件和子文件

ls /etc/logrotate.conf /etc/logrotate.d/
linux之logrotate日志轮转_第1张图片

主配置文件介绍

vim /etc/logrotate.conf
linux之logrotate日志轮转_第2张图片
=========全局设置==========
weekly //轮转的周期,一周轮转
rotate 4 //保留4份
create //轮转后创建新文件
dateext //使用日期作为后缀
#compress //是否压缩
include /etc/logrotate.d //包含该目录下的子配置文件
/var/log/wtmp { //对某日志文件设置轮转的方法
monthly //一月轮转一次
minsize 1M //最小达到1M才轮转,monthly and minsize(同时达到两个条件)
create 0664 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}
/var/log/btmp {
missingok //丢失不提示
monthly //每月轮转一次
create 0600 root utmp //轮转后创建新文件,并设置权限
rotate 1 //保留一份
}

yum日志轮转实例

轮转的目标文件/var/log/yum.log

配置轮转规则

1.vim /etc/logrotate.d/yum
linux之logrotate日志轮转_第3张图片
2.
/var/log/yum.log{
missingok //丢失不执行
#notifempty //空文件不论转
#maxsize 30k //达到30k乱转,daily or size
#yearly //或者一边一轮转
daily //缩小周期到一天
rotate 3 //轮转保留3天
create 0777 root root
}

测试

错误示范

#/usr/sbin/lpgrotate /etc/loogrotate.conf //手动轮转
#ls /var/log/yum*
/var/log/yum.log
linux之logrotate日志轮转

正确示范

修改时间,手动触发轮转
#date 04011000 //date 月日十分,把时间向未来推移
#/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
#ls /var/log/yum* //日志文件已出现多个

关于时间

#grep 'yum'/lib/logrotate/logrotate.status //记录所有日志文件最近轮转的时间
"/var/log/yum.log"2019-3-31-10:0:23 //如果没有轮转过,只有一次记录