码迷,mamicode.com
首页 > 系统相关 > 详细

Linux日志文件总管——logrotate

时间:2018-03-26 12:35:26      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:##   logrotate   脚本   oca   关于   ati   detail   int   httpd   

1、logrotate简介

技术分享图片

       日志文件包含了关于系统中发生的事件的有用信息,在排障过程中或者系统性能分析时经常被用到。对于忙碌的服务器,日志文件大小会增长极快,服务器会很快消耗磁盘空间,这成了个问题。除此之外,处理一个单个的庞大日志文件也常常是件十分棘手的事。

      logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循)、压缩以及删除旧的日志文件。例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月的日志。配置完后,logrotate的运作完全自动化,不必进行任何进一步的人为干预。另外,旧日志也可以通过电子邮件发送。

2、logrotate安装

       主流Linux发行版上都默认安装有logrotate包,如果出于某种原因,logrotate没有出现在里头,你可以使用

yum install logrotate crontabs     ##本文只讲述centos的版本,其他系统版本请自行查询

3、logrotate的配置文件

A、logrotate.conf

 logrotate的主要配置文件是/etc/logrotate.conf,通常不需要对它进行修改。

技术分享图片
 1 [root@localhost logrotate.d]# cat /etc/logrotate.conf 
 2 # see "man logrotate" for details
 3 # rotate log files weekly
 4 weekly
 5 
 6 # keep 4 weeks worth of backlogs
 7 rotate 4
 8 
 9 # create new (empty) log files after rotating old ones
10 create
11 
12 # use date as a suffix of the rotated file
13 dateext
14 
15 # uncomment this if you want your log files compressed
16 #compress
17 
18 # RPM packages drop log rotation information into this directory
19 include /etc/logrotate.d
20 
21 # no packages own wtmp and btmp -- well rotate them here
22 /var/log/wtmp {
23     monthly
24     create 0664 root utmp
25     minsize 1M
26     rotate 1
27 }
28 
29 /var/log/btmp {
30     missingok
31     monthly
32     create 0600 root utmp
33     rotate 1
34 }
35 
36 # system-specific logs may be also be configured here.
View Code

 B、logrotate.d

     日志文件的轮循设置在独立的配置文件中,它(们)放在/etc/logrotate.d/目录下。logrotate.d 是一个目录,该目录里的所有文件都会被主动的读入/etc/logrotate.conf中执行。
      另外,如果 /etc/logrotate.d/ 里面的文件中没有设定一些细节,则会以/etc/logrotate.conf这个文件的设定来作为默认值。

[root@localhost logrotate.d]# cd /etc/logrotate.d/
[root@localhost logrotate.d]# ls
dracut  httpd  php-fpm  syslog  yum

C、脚本

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

技术分享图片
1 [root@localhost logrotate.d]# cat /etc/cron.daily/logrotate 
2 #!/bin/sh
3 
4 /usr/sbin/logrotate /etc/logrotate.conf
5 EXITVALUE=$?
6 if [ $EXITVALUE != 0 ]; then
7     /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
8 fi
9 exit 0
View Code

 

Linux日志文件总管——logrotate

标签:##   logrotate   脚本   oca   关于   ati   detail   int   httpd   

原文地址:https://www.cnblogs.com/dadonggg/p/8649706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!