zoukankan      html  css  js  c++  java
  • logrotate

    logrotate

    • 系统默认自带就有这个包,运行靠的是 cron(安装时创建任务)。
      [root@argor ~]# rpm -ql logrotate
      /etc/cron.daily/logrotate
      /etc/logrotate.conf
      /etc/logrotate.d
      /etc/rwtab.d/logrotate
      /usr/sbin/logrotate
      /usr/share/doc/logrotate-3.8.6
      /usr/share/doc/logrotate-3.8.6/CHANGES
      /usr/share/doc/logrotate-3.8.6/COPYING
      /usr/share/man/man5/logrotate.conf.5.gz
      /usr/share/man/man8/logrotate.8.gz
      /var/lib/logrotate
      /var/lib/logrotate/logrotate.status
      [root@argor ~]#
      View Code

      第一行显示的就是 

    • 通过 rpm 包安装的程序,会自动备 logrotate 处理。
      默认会安装自己的logrotate配置文件到【/etc/logrotate.d】路径。而 logrotate 执行时的主配置文件会包含该目录。
    • 强制轮替
      logrotate -f /etc/logrotate.conf
      View Code

      默认一周执行四次程序,依据配置文件信息处理

        3 weekly
        4 
        5 # keep 4 weeks worth of backlogs
        6 rotate 4
      为啥一周四次轮替,主配置文件起到的作用

    配置

    • 例子:删除前每周轮替5次,轮换后执行脚本
             /var/log/messages {
                 rotate 5
                 weekly
                 postrotate
                     /usr/bin/killall -HUP syslogd
                 endscript
             }
      
      # 定义如何处理文件 /var/log/messages
      # rotate 定义删除前的轮替次数(或者邮递前),
      # weekly[weekday] 默认为 0,表示星期天
      # 执行个脚本,从缩进就能想到咋回事!
      # 但是这里的脚本并不会被执行,因为没有 sharedscripts。
      # 而 默认就有 nosharedscripts,可以被 sharedscripts 所覆盖。
      View Code
    • 例子:同时定义两个文件的轮换规则

             "/var/log/httpd/access.log" /var/log/httpd/error.log {
                 rotate 5
                 mail www@my.org
                 size 100k
                 sharedscripts
                 postrotate
                     /usr/bin/killall -HUP httpd
                 endscript
             }
      # mail 日志删除前,邮递地址
      # size 仅当日志大于指定大小值时才轮替(可以是纯数字,或者带上k,m,g,不分大小写)
      # sharedscripts 默认不生效,必须显示出现
      View Code

      大小超过 100K 轮替一次,5次轮替后,将要被删除的文件会被邮递出去。

    • 实例:轮替自定义文本文件
      /root/demo {
          rotate 5
          weekly 2
      }
      配置轮替规则

      强制轮替,查看效果

      [root@argor logrotate.d]# logrotate -f /etc/logrotate.conf
      [root@argor logrotate.d]# ll /root
      total 28
      -rw-r--r-- 1 root root     0 Jun 23 20:39 demo
      -rw-r--r-- 1 root root 21924 Jun 23 20:39 demo-20200623
      View Code

      这个实例生效,只能说明是把要轮替的文件加进去了。

    logrotate

    一切代码都是为了生活,一切生活都是调剂
  • 相关阅读:
    【第一周】进度条
    【第二周】Java实现英语文章词频统计(改进1)
    【第二周】关于java.util包下的Random类
    【第二周】结对编程(宫丽君和林莉):四则运算
    【第二周】scrum站立会议
    【第二周】燃尽图
    【第二周】Java实现英语文章词频统计
    【第一周】读《构建之法》有感
    python:带参数的装饰器,函数的有用信息
    python:数据类型dict
  • 原文地址:https://www.cnblogs.com/argor/p/8178092.html
Copyright © 2011-2022 走看看