29.logrotate日志轮转

注:针对任何日志文件(rsyslog 日志、Nginx访问或错误日志...)

一、logrotate (轮转,日志切割) 
1. 如果没有日志轮转,日志文件会越来越大
2. 将丢弃系统中最旧的日志文件,以节省空间 
3. logrotate本身不是系统守护进程,它是通过计划任务crond每天执行
logrotate 配置文件:

 /etc/logrotate.conf (决定每个日志文件如何轮转) /etc/logrotate.d/*

[root@fanhua ~]# ls /etc/logrotate.conf /etc/logrotate.d/ 
 
 /etc/logrotate.conf

 /etc/logrotate.d/: 

acpid   cups   iscsiuiolog  ppp  rpm  subscription-manager  up2date  wpa_supplicant conman  httpd  mgetty       psacct  setroubleshoot  syslog          vsftpd.log  yum

主配置文件

[root@fanhua ~]# vim /etc/logrotate.conf    
weekly              //轮转的周期,一周轮转 
rotate 4            //保留4份 
create              //轮转后创建新文件 
dateext             //使用日期作为后缀 
#compress           //日志轮替时,旧的日志进行压缩 
include /etc/logrotate.d             //包含该目录下的配置文件

/var/log/wtmp {                     //对该日志文件设置轮转的方法    
 monthly                            //一月轮转一次  
 minsize 1M                         //最小达到1M才轮转,否则就算时间到了也不轮转
 create 0664 root utmp              //轮转后创建新文件,并设置权限   
 rotate 1                           //保留一份 
}

/var/log/btmp {    
 missingok                          //丢失不提示    
 monthly                            //每月轮转一次     
 create 0600 root utmp              //轮转后创建新文件,并设置权限 
 rotate 1                           //保留一份 
} 

例1:轮转文件/var/log/yum.log
vim /etc/logrotate.d/yum       
/var/log/yum.log {
 missingok                                //丢失不提醒
 #notifempty                              // 空文件不轮转 
 #size 30k                                  //只要到了30k就轮转
 #yearly
 daily                                     //每天轮转一次   
 rotate 3      
 create 0777 root root 
}

测试:

[root@localhost]#  /usr/sbin/logrotate /etc/logrotate.conf    //手动轮转
[root@localhost]#  /usr/sbin/logrotate -f /etc/logrotate.conf   //强制手动轮转

[root@localhost apache]# logrotate -f /etc/logrotate.d/yum
[root@localhost apache]# ls /var/log/yum* 
/var/log/yum.log  /var/log/yum.log.1  /var/log/yum.log-20200104

[root@localhost ]# grep yum /var/lib/logrotate/logrotate.status       //记录所有日志文件最近轮转的时间 "/var/log/yum.log" 2017-3-31-10:0:23


#/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf //根据状态文件,规则文件进行轮转
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个location配置块使用了多个 Nginx 模块...
    SkTj阅读 7,807评论 0 12
  • 本文将从海量日志系统在优化、部署、监控方向如何更适应业务的需求入手,重点从多种日志系统的架构设计对比;后续调优过程...
    中v中阅读 1,031评论 0 1
  • Docker 日志分为两类: Docker 引擎日志(也就是 dockerd 运行时的日志), 容器的日志,容器...
    ___n阅读 878评论 0 2
  • 引用类型是一种数据结构,不同于类 Object类型 创建方法有两种: 使用new操作符后跟Object构造函数va...
    Random_阅读 218评论 0 0
  • 光阴似箭,岁月如梭,转眼之间,你已经陪伴我走过了22年,这段时间,因为有你的陪伴,我感觉人生变得不那么孤单。也因为...
    遇荐静心阅读 650评论 2 0