精华内容
下载资源
问答
  • 日志切割

    2019-02-15 10:26:00
    # 介绍:logcut.sh 简单的日志切割脚本,前3天的切割方便随时看,前4-10天的进行压缩,超出的删除 # # 注意:会将其他带时间的日志压缩后删除 # 功能:日志切割 <日志格式: xxxxx.当前年-月-日.log> ...

    logcut.sh

    [root@localhost ~]# cat logcut.sh
    #!/bin/bash
    # 日期:2018/6/22
    # 介绍:logcut.sh 简单的日志切割脚本,前3天的切割方便随时看,前4-10天的进行压缩,超出的删除
    #
    # 注意:会将其他带时间的日志压缩后删除
    # 功能:日志切割 <日志格式: xxxxx.当前年-月-日.log> <压缩格式: xxxxx.当前年-月-日.tar.gz>
    #
    # 适用:centos6+
    # 语言:中文
    
    #流程
    #主体:先检查是否是log文件,是则检查是否是切割后文件,不是则去切割,是则检查时间是否3天内的,3天外则压缩
    #切割:检查是否有这个文件,有则将日志重定向到切割后的文件,清空日志。没有则复制一份,清空日志
    #压缩:检查是否有这个文件,有则删除。压缩文件,并删除源文件
    #检查压缩:检查是否有tar.gz结尾文件,有则匹配是否带时间,带时间则看是否超过10天,超过删除。不带时间则跳过
    
    
    
    #[使用设置]
    #日志文件所在目录,将切割这个文件夹下所有日志
    log_dir=/ops/logs
    
    #以切割形式保存的文件天数
    date_cut=3
    
    #以压缩形式保存的天数
    date_yasuo=7
    
    
    
    #[自动获取]
    #当前年月日
    date_now=`date +%F`
    
    #当前年月
    date_nian=`date +%Y-`
    
    #前3天数组
    date_cut_zu=($(for i in `seq 1 ${date_cut}`;do date -d -${i}days "+%F";done))
    
    #前10天数组
    date_time=`expr $date_cut + $date_yasuo`
    date_yasuo_zu=($(for i in `seq 1 ${date_time}`;do date -d -${i}days "+%F";done))
    
    
    
    #对日志名进行格式处理,$1填写要处理的文件
    Format_Name() {
        local a=`echo ${1%%.log}`
        local b=`echo ${a%%-log}`
        echo $b
    }
    
    #对传入的日志文件进行切割处理,$1填写要切割文件
    Cut_Log() {
        local file=`Format_Name $1`
        local cut_file="${file}.${date_now}.log"
        
        #先匹配是否已经有这个文件
        ls | grep "^${cut_file}$" &> /dev/null
        if [[ $? -eq 0 ]];then
            cat $1 >> $cut_file
            > $1
        else
            cp -p $i $cut_file
            > $1
        fi
    }
    
    #对当前文件进行压缩,$1填写要被压缩的文件
    Yasuo_Log() {
        local file=`Format_Name $1`
        local yasuo_file="${file}.log.tar.gz"
        
        #先匹配是否已经有这个文件
        ls | grep "^${yasuo_file}$" &> /dev/null
        if [[ $? -eq 0 ]];then
            #有则删除,删除的都是3天中的,删除后从新打包
            rm -rf $yasuo_file
        fi
    
        tar -cf $yasuo_file $1
        rm -rf $i
    }
    
    #整理日志文件
    Cut_Main() { 
        #获取所有日志文件,不包含压缩文件
        for i in `ls | grep .log$`
        do
            #挑出当月的日志文件,否则去压缩
            echo $i | grep ${date_nian} &> /dev/null
            if [[ $? -eq 0 ]];then
                local a=`Format_Name $i`
                local b=`echo ${a:(-10)}` #当前日志年月日
                #看是否在数组中,不在则压缩
                echo ${date_cut_zu[*]} |grep -w $b &> /dev/null
            #echo $date_now
                if [[ $? -ne 0 ]];then
                    [[ "$b" != "$date_now" ]] && Yasuo_Log $i
                fi
            else
                Cut_Log $i
            fi
        done
    }
    
    #整理压缩的日志文件
    Yasuo_Main() {
        #获取所有压缩包
        for i in `ls | grep .tar.gz$`
        do
            echo $i | grep ${date_nian} &> /dev/null
            if [[ $? -eq 0 ]];then
                local a=`echo ${i%%.log.tar.gz}`
                local b=`echo ${a:(-10)}` #当前日志年月日
            
                #看是否在数组中,不在则删除
                echo ${date_yasuo_zu[*]} |grep -w $b &> /dev/null
                if [[ $? -ne 0 ]];then
                    [[ "$b" != "$date_now" ]] && rm -rf $i
                fi
            else
                #不是当月的,其他类型压缩包,跳过
                continue
            fi
        done
    }
    
    
    
    #开始
    if [[ ! -d $log_dir ]];then
        echo "$log_dir not found"
        exit 1
    fi
    cd $log_dir
    
    Cut_Main
    Yasuo_Main
    

     

    转载于:https://www.cnblogs.com/charon2/p/10382122.html

    展开全文
  • 日志切割

    2018-03-21 10:51:31
    日志切割器,特点:支持大日志文件切割(1GB以上),可设定切割参数,切割份数等参数,好用。
  • Nginx日志切割脚本

    2021-01-28 10:21:22
    Nginx日志切割脚本
  • 1、介绍Logrotate是linux日志切割工具Logrotate是基于crontab定时任务实现的定时日志切割,配置文件为 /etc/logrotate.conf。crontab的每天的定时执行任务目录/etc/cron.daily存放每天要执行的定时任务,里边就有...

    1、介绍

    Logrotate是linux日志切割工具

    Logrotate是基于crontab定时任务实现的定时日志切割,配置文件为 /etc/logrotate.conf。crontab的每天的定时执行任务目录/etc/cron.daily存放每天要执行的定时任务,里边就有logrotate文件。

    2、logrotate命令:

    logrotate -f /etc/logrotate.conf强制执行

    logrotate -d /etc/logrotate.conf debug 测试编写的logrotate文件

    3、示例可用配置

    /etc/logrotate.conf配置文件中有一行

    include /etc/logrotate.d

    表示包含/etc/logrotate.d目录下边的文件,可在该目录下新建一个文件如im,内容如下:

    /opt/im/log/*/info/*.log {

    daily

    missingok

    copytruncate

    rotate 10000000

    compress

    notifempty

    delaycompress

    dateext

    }

    4、配置选项说明

    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:在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行

    sharedscripts:所有的日志文件都轮转完毕后统一执行一次脚本

    daily:指定转储周期为每天

    weekly:指定转储周期为每周

    monthly:指定转储周期为每月

    rotate count:指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份

    size size:当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB

    展开全文
  • MongoDB 日志切割​MongoDB 默认是不会进行切割日志的,除非我们配置了 logRotate = rename,并且重启 MongoDB 服务,才会进行切割日志的,那么为了避免实际中我们一个日志文件过大,我们需要对日志进行切割,有两个...

    MongoDB 日志切割

    ​MongoDB 默认是不会进行切割日志的,除非我们配置了 logRotate = rename,并且重启 MongoDB 服务,才会进行切割日志的,那么为了避免实际中我们一个日志文件过大,我们需要对日志进行切割,有两个办法:

    1. 通过 MongoDB 管理命令进行切割

    使用该命令时需要在 MongoDB 运行时指定日志文件路径。--logpath [file] ,或者在配置文件中指定。

    use admin

    db.runCommand({logRotate:1})

    2. 通过 Linux 系统自带的服务 logrotate 进行切割

    首先我们需要配置 MongoDB 参数 logRotate = reopen, logappend = true,然后通过 Linux 系统自带的 logrotate。配置文件放置在 /etc/logrotate.d/, 切割配置文件示例:

    /opt/mongodb/log/mongodb.log {

    rotate 180

    daily

    size 100M

    olddir /opt/mongodb/log/oldlog

    copytruncate

    dateext

    compress

    notifempty

    missingok

    }

    3. 通过向进程发送 SIGUSR1 信号来切割日志

    如果我们的进程 id 是19555,那么我们可以通过以下命令来切割日志的。只要我们执行了该命令,日志就会立即进行切割。

    kill -SIGUSR1  19555

    0b1331709591d260c1c78e86d0c51c18.png

    展开全文
  • Knife4File,日志切割工具,解压即用,适用查看、切割超大日志,本人亲测,切割20G日志。总之,不好用,你打我。
  • 本篇文章主要介绍了详解Nginx日志配置及日志切割,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • 本文档已Tomcat8.5.47.0为例,使用cronolog实现linux系列系统下的tomcat的日志切割,主要切割catalina.out日志。 2、下载安装cronolog工具 下载“cronolog-1.6.2.tar.gz”安装包; 解压安装包:# tar xf cronolog...

    1、说明

    本文档已Tomcat8.5.47.0为例,使用cronolog实现linux系列系统下的tomcat的日志切割,主要切割catalina.out日志。

    2、下载安装cronolog工具

    1. 下载“cronolog-1.6.2.tar.gz”安装包;
    2. 解压安装包:
      # tar xf cronolog-1.6.2.tar.gz
    3. 安装:
      # cd cronolog-1.6.2
      # ./configure
      # make
      # make install
    4. 查看是否安装成功
      # which cronolog

     

    3、编辑tomcat下的/bin/catalina.sh脚本文件

    1. 在所有的“org.apache.catalina.startup.Bootstrap”前增加“-Djava.awt.headless=true \”,保证tomcat可以后台启动;
    2. 将“>> "$CATALINA_OUT" 2>&1 "&"”代码删除,注意注释不行,必须删除,替换成
      2>&1 |/usr/local/sbin/cronolog "$CATALINA_BASE/logs/catalina-%Y-%m-%d.out" &

    4、编辑Tomcat下的/conf/logging.properties日志配置文件

    Tomcat根目录/conf/logging.properties配置还牵涉一些其他相关的输出,不想输出其他的,就把相关的注掉,比如不想输出host-manager**.log的日志,就注掉以下行:

     

    #4host-manager.org.apache.juli.FileHandler.level = FINE

    #4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs

    #4host-manager.org.apache.juli.FileHandler.prefix = host-manager.

    #org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO

    #org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler

     

     

    展开全文
  • nginx访问日志并没有Apache那样每天自动进行切割的配置,而服务器文件系统IO不给力时,不加以切割的文件体积较大的...就不拿我的这个生产环境的日志切割做说明了,下面就这个centos下nginx日志切割进行一些原理讲解...
  • Nginx日志切割

    2020-12-17 16:12:57
    Nginx日志切割 现有的日志都会存在 access.log 文件中,但是随着时间的推移,这个文件的内容会越来越多,体积会越来越大,不便于运维人员查看,所以我们可以通过把 文件切割为多份不同的小文件作为日志,切割规则...
  • Nginx 日志切割

    2020-03-17 16:17:17
    文章目录日志切割介绍切割核心思想日志切割脚本添加定时任务总结 日志切割介绍 在 Linux 下的日志会定期进行滚动增加,我们可以在线对正在进行回滚的日志进行指定大小的切割 (动态),如果这个日志是静态的。那么我们...
  • nginx日志切割shell脚本

    2020-09-15 20:24:54
    nginx的日志文件没有rotate功能。如果你不处理,日志文件将变得越来越大,还好我们可以写一个nginx日志切割脚本来自动切割日志文件
  • windows 下nginx 日志切割 结合windows任务计划,实现每天备份日志,并reopen nginx
  • nginx日志切割

    2019-05-17 11:22:04
    nginx日志切割 我们再日常的生产环境当中,日志文件的大小可能高达几个G,这对我们的管理造成很大的不变。我们需要日志切割将每天的日志定期备份,并且新的日志产生再新的日志文件,方便日志的管理。 这就是日志切割...
  • nginx按天进行日志切割脚本,同样适合其它很多服务日志的切割,压缩包包含shell切割脚本和使用说明,该脚本适合nginx同时也适合其他类似服务的日志切割,只要简单修改shell脚本即可,灵活多变,实用。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,123
精华内容 2,049
关键字:

日志切割