码迷,mamicode.com
首页 > 其他好文 > 详细

logrotate关于日志轮询和分割

时间:2015-07-22 22:40:18      阅读:1030      评论:0      收藏:0      [点我收藏+]

标签:

如果你的是源码包安装的服务,那么对于Linux服务器上的一些服务在运行当中产生的日志很重要,可以判断你的服务是否有异常等,但源码包安装的日志是没有日志的轮询或者说是切割能力的,

所以你就需要用到bash脚本来做或者用其他语言,但我这里来介绍下一个RHEL系列的工具 logrotate 他可以轻松的帮你实现日志的轮询。像RHEL和CentOS都默认安装了该服务。你可以直接

编辑/etc/logrotate.conf  来实现对相应日志文件的轮询:

例如典型的apache日志,

首选我来说下列子然后在详细说他的参数:

我的编译安装的apache是在/usr/local/apache2/logs

这里记录了我的所有apache的日志文件包括虚拟主机的文件。

 

[root@app logs]# vi /etc/logrotate.conf 
# see "man logrotate" for details
# rotate log files weekly
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- well rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

/usr/local/apache2/logs/*_log{
    daily
    create
    rotate 30
}

我在下面加入了我的apache的log文件下所有以_log结尾的文件

这样无论我将来在添加新的虚拟主机太也会生效。

当然我们可以用:logrotate -v /etc/logrotate.conf   来查看我们现在生效的日志配置,在里面我可以再最后看到我添加的apache日志中有了我的虚拟主机命名的日志文件信息

如果想让你现在的配置就生效的话 你可以使用 :[root@app logs]# logrotate -f /etc/logrotate.conf  这就可以强制执行该配置文件中的信息。这个需要注意的是尽力不要用在线上服务器

配置介绍:

1.日志的命名规则

如果配置文件中有dateext参数,那么日志会用日期来作为日志文件的后缀, 例如:"mail-20150722" 这样可以保证日志不会重叠覆盖。也不需要日志文件改名。只需要自定文件的个数删除多余的日志文件即可。

如果配置文件中没有dateext参数,那么日志文件就需要进行改名,当第一次进行日志轮替时,当前的日志文件名,会修改为"日志文件名.1"然后在重新生成一个新的文件名称为 日志文件名记录数据,以此类推就比如像手。枪子弹夹装弹一样,新的加入会成为第一个后面的会成为第二个在后面的又二变成三

2.配置文件及相应的配置参数介绍:(该图来自网络如有版权问题可留言修改)

技术分享

 

logrotate关于日志轮询和分割

标签:

原文地址:http://www.cnblogs.com/patf/p/4668847.html

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