• logrotate关于日志轮询和分割


    如果你的是源码包安装的服务,那么对于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 -- we'll 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.配置文件及相应的配置参数介绍:(该图来自网络如有版权问题可留言修改)

  • 相关阅读:
    C#中异步和多线程的区别
    猫 老鼠 人的编程题
    C#中数组、ArrayList和List三者的区别
    经典.net面试题目
    sql有几种删除表数据的方式
    内存池的实现
    A*算法为什么是最优的
    传教士与野人问题
    d3d导致cairo不正常
    c++中的signal机制
  • 原文地址:https://www.cnblogs.com/patf/p/4668847.html
Copyright © 2020-2023  润新知