Logrotate是Linux下一款日志管理工具,可用于日志文件的转储(即删除旧日志文件,创建新日志文件)。可以根据日志大小或者按照某时段间隔来转储,内部使用cron程序来执行。
Logrotate还可以在压缩日志,并发送到指定E-mail
    默认配置文件在/etc/logrotate.conf  /etc/logrotate.d为其包含文件 配置文件的时候需要写这个包涵
    
    logrotate 配置参数
        compress                        通过gzip压缩转储以后的日志
        nocompress                      不压缩
        copytruncate                    用于还在打开中的日志文件,把当前日志备份并截断
        nocopytruncate                  备份日志文件但是不截断
        create mode owner group         转储文件,使用指定的文件模式创建新的日志文件
        nocreate                        不建立新的日志文件
        delaycompress 和 compress        一起使用时,转储的日志文件到下一次转储时才压缩
        nodelaycompress                 覆盖 delaycompress 选项,转储同时压缩。
        errors address                   专储时的错误信息发送到指定的Email 地址
        ifempty                         即使是空文件也转储,这个是 logrotate 的缺省选项。
        notifempty                      如果是空文件的话,不转储
        mail address                    把转储的日志文件发送到指定的E-mail 地址
        nomail                          转储时不发送日志文件
        olddir directory                转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
        noolddir                        转储后的日志文件和当前日志文件放在同一个目录下
        prerotate/endscript             在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
        postrotate/endscript            在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
        daily                           指定转储周期为每天
        weekly                          指定转储周期为每周
        monthly                         指定转储周期为每月
        rotate count                    指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
        tabootext [+] list 让logrotate   不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
        size size                       当日志文件到达指定的大小时才转储,bytes(缺省)及KB(sizek)或MB(sizem)

若干要点:

每个部分首括号可与其他语句同行,尾行括号必须单独成行

prerotate和postrotate可指定转储前后(即切割前后)执行的linux脚本(endscript结束),如

/var/log/messages {
        prerotate                               //转储之前脚本
        /usr/bin/chattr -a /var/log/messages    //去掉该文件-a属性
        endscript                               //脚本结束
        postrotate                              //转储后脚本
        /usr/bin/kill -HUP syslogd              //重新初始化系统日志守护程序 syslogd
        /usr/bin/chattr +a /var/log/messages    //添加-a属性,防止文件被覆盖
        endscript
    }

Logrotate的备份策略(以两个备份来说明,即rotate 2,文件error.log):原始文件error.log,经过一次转储,会生成error.log.1;第二次转储,生成error.log.2;第三次转储,error.log.n命名为error.log.n+1,同时生成新的error.log.1,删除error.log.n+1文件。

转储可以通过强制执行来观察工作过程

logrotate -vf /etc/logrotate.d/nginx。

日志切割的执行时间是由cron程配置决定的,可查看/etc/crontab文件(cron时间戳格式:分时日月周)

nginx日志切割:

/var/log/nginx/*.log {      //注意:具体请以自己的nginx日志为准
    daily                   //每天切割
    dateext                 //%Y%m%d作为后缀
    missingok               //日志不存在,分析下一个
    rotate 2                //保留两个备份
    compress                //转储之后压缩.tar.gz
    notifempty              //空文件不转储
    create 640 nginx adm    //新日志文件模式
    sharedscripts           //整个日志组运行一次的脚本
    postrotate
            [ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
                            //重启nginx,重新加载日志文件,防止不写
            `cp -f /var/log/nginx/*.* /var/log/nginx/backup`
                            //自定义脚本,将旧日志copy到backup文件夹(backup要存在)
    endscript
}

logrtate 切割详解的更多相关文章

  1. 日志切割logrotate和定时任务crontab详解

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

  2. EasyPR--开发详解(6)SVM开发详解

    在前面的几篇文章中,我们介绍了EasyPR中车牌定位模块的相关内容.本文开始分析车牌定位模块后续步骤的车牌判断模块.车牌判断模块是EasyPR中的基于机器学习模型的一个模块,这个模型就是作者前文中从机 ...

  3. cookie详解

    一.cookie详解 (1)设置cookie 每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie: document.cookie="userId ...

  4. CSS3 中border-image详解

    CSS3 border-image详解.应用及jQuery插件 一.border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊 ...

  5. EasyPR--开发详解

    我正在做一个开源的中文车牌识别系统,Git地址为:https://github.com/liuruoze/EasyPR. 我给它取的名字为EasyPR,也就是Easy to do Plate Reco ...

  6. JSplitPane详解

    摘自http://blog.163.com/xiexueyong1987@126/blog/static/1262673422010102711295541/ JSplitPane详解 pasting ...

  7. javascript中的字符串编码、字符串方法详解

    js中的字符串是一种类数组,采用UTF-16编码的Unicode字符集,意味字符串的每个字符可用下标方式获取,而每个字符串在内存中都是一个16位值组成的序列.js对字符串的各项操作均是在对16位值进行 ...

  8. 让Chrome看不了WWDC直播的HLS技术详解

    Requirements: Live streaming uses Apple's HTTP Live Streaming (HLS) technology. HLS requires an iPho ...

  9. 如何将HLS延时缩短至4秒,HLS+技术详解

    在直播应用中,RTMP 和 HLS 是两种较为成熟且广泛应用的流媒体协议,基本上可以覆盖所有客户端.RTMP 是互联网 TCP/IP 五层体系结构中应用层的协议,主要优势就是实时性高,基本可将直播延时 ...

随机推荐

  1. Java IO RandomAccessFile 任意位置读/写

    随机读写类 RandomAccessFile的唯一父类是Object,与其他流父类不同.是用来访问那些保存数据记录的文件的,这样你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必 ...

  2. 【Android学习】实现卡片式ListView

    效果: 主要是设置xml文件 两种状态下的item card_background.xml <?xml version="1.0" encoding="utf-8& ...

  3. arp欺骗进行流量截获-1

    这边博文主要讲一下怎么使用arp欺骗进行流量截获,主要用于已经攻入内网以后,进行流量监听以及修改. 一.什么是arp     arp协议是以太网的基础工作协议,其主要作用是是一种将IP地址转化成物理地 ...

  4. python3好用的mysql.connector库

    python3好用的mysql.connector库 from mysql.connector import connect #建立mysql连接,生成一个mysql.connector对象 conn ...

  5. kali linux之edb--CrossFire缓冲区溢出

    漏洞的罪恶根源------变量,数据与代码边界不清,开发人员对用户输入没做过滤,或者过滤不严 如这个脚本,写什么,显示什么,但是加上:,|,&&,后面加上系统命令,就执行命令了 缓冲区 ...

  6. windows server2008虚拟机系统盘扩容

    windows server2008虚拟机的系统盘空间过小,对系统盘进行扩容,操作如下: 1.将虚拟机关机: 2.VMware对该虚拟机进行设置,选中磁盘,点击扩容,输入扩容大小,等待扩容完成: 3. ...

  7. 【ARC080F】Prime Flip 差分+二分图匹配

    Description ​ 有无穷个硬币,初始有n个正面向上,其余均正面向下.  你每次可以选择一个奇质数p,并将连续p个硬币都翻转.  问最小操作次数使得所有硬币均正面向下. Input ​ 第一行 ...

  8. loj2289 [THUWC 2017]在美妙的数学王国中畅游(LCT+Taylor展开)

    link 题目大意: 你需要维护一个树 每个点都有个sin(ax+b)或exp(ax+b)或ax+b 你需要维护一些操作:连边.删边.修改某个点的初等函数.询问某条树链上所有函数带入某个值后权值和或不 ...

  9. [jvm]基于jvm的线程实现

    一.线程的实现 学过操作系统的肯定都知道: 进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竞争计算机系统资源的基本单位. 线程:是进程的一个执行单元,是进程内可调度实体. ...

  10. 阻止datagrid填充已经获取到的远程数据

    时光流逝,弹指挥间,不经意的一年又如路上一个动人的靓影悄然消失在视线里.我们往往都是先问自己,我们收获了什么,然后才想到我们付出了什么,很少有人先问自己这一年付出了什么,然后再去看所得.话不多说了,祝 ...