zoukankan      html  css  js  c++  java
  • nginx 日志切割

          Logrotate是Linux下一款日志管理工具,可用于日志文件的转储(即删除旧日志文件,创建新日志文件)。可以根据日志大小或者按照某时段间隔来转储,内部使用cron程序来执行。Logrotate还可以在压缩日志,并发送到指定E-mail。

    安装:

    yum install logrotate

    安装完成后,自动在/etc/cron.daily/下生成个logrotate脚本文件。

    创建logrotate的配置文件

    vim  /etc/logrotate.d/nginx

    /var/log/nginx/*.log {
    
            daily  #指定转储周期为每天 
    
            missingok
    
            rotate 3
    
            compress
    
            #delaycompress 
    
            #如果是空文件的话,不转储
            notifempty
            create 0640 nginx nginx
    
            sharedscripts
    
            postrotate
    
      #kill -USR1 `cat /var/run/nginx.pid不是中止Nginx的进程,而是传递给它信号重新生成日志,如果nginx没启动不做操作
    
                    [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
    
            endscript
    
    }

    chmod -x     /etc/logrotate.d/nginx

    测试配置

    /usr/sbin/logrotate -f /etc/logrotate.d/nginx

    指定每晚上11:59分运行

    crontab  -e

    59 23 * * *  /usr/sbin/logrotate -f /etc/logrotate.d/nginx

    logrotate配置文件参数含义

    logrotate 可以直接执行,后面跟配置文件就可以了,如:/usr/sbin/logrotate -f /etc/logrotate.d/nginx
    
    参数:
    
    -v 显示指令执行过程
    
    -d Debug模式(模拟执行),详细显示指令执行过程,便于排错或了解程序执行的情况。
    
    -f 强制执行
    
    -s <状态文件>  使用指定的状态文件
    
    
    
    logrotate 的默认配置文件是 /etc/logrotate.conf。主要参数:
    
    daily指定转储周期为每天 
    
    weekly指定转储周期为每周 
    
    monthly指定转储周期为每月 
    
    dateext在文件末尾添加当前日期 
    
    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转储后的日志文件和当前日志文件放在同一个目录下 
    
    rotate count指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份 
    
    tabootext [+] list让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~ 
    
    size size当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem). 
    
    prerotate/endscript在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
    
    postrotate/endscript在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

    参考:

    https://blog.51cto.com/lee90/1769203

    https://segmentfault.com/q/1010000000120419

    https://blog.csdn.net/weiyuefei/article/details/79362611

  • 相关阅读:
    vmware下玩ubuntu总结
    .Net Json 字典序列化
    Flex Air TitleWindow 拖动范围控制
    TimesTen 问题荟萃
    TimesTen 时间戳(timestamp)用法
    批量数据插入 (.Net, ODBC)
    腾讯 360浏览器 调用js问题
    [转]Android项目源码混淆问题解决方法
    Intent调用大全
    View实现涂鸦、撤销以及重做功能【转】
  • 原文地址:https://www.cnblogs.com/xiaoyou2018/p/12218491.html
Copyright © 2011-2022 走看看