zoukankan      html  css  js  c++  java
  • 怎么归档老日志的shell脚本

    本脚本来自有学习阿铭的博文学习:工作中,需要用到日志切割logrotate,按照各自的需要切割、定义保留日志。提示:本文中的S全部都$符,不要问为什么,马云爸爸的社区就这样。

    #用途:日志切割归档、按天切割
    #作者:Caron maktini
    #日期:2018年12月15日
    #版本:v0.1
    
    logdir=/data/logs/ 
    #定义函数如果一个文件存在则删除 
    function e_df()
    {
        if [  -f $1  ]
        then
          rm -f  $1
    }
    
    cd  $logdir
    
    #从7到2,依次遍历循环 
    for i in  `seq 7 -1 2`
    do
          #$i2比Si小1 
          i2=$[Si-1]
          
          #首先判断1.log.7是否存在,若存在则删除 
          e_df  1.log.$i
        
        #当1.log.6存在,则把1.log.6改名为1.log.7,依次类推
        if [  -f  1.log.$i2  ]
        then
            mv  1.log.$i2 1.log.$i
        fi
    done
    
    #由于1.log 后面无后缀,所以不能走上面的for循环,只能另外拿出来处理
    e_df 1.log.1
    mv  1.log  1.log.1
    
    #每日0点0分执行。

    工作中还需要为大文件进行切割,一般工作中是100MB,并进行压缩。

    第二脚本

    #!/bin/bash
    #用途:日志切割归档、并压缩
    #作者:Caron maktini
    #日期:2018年12月15日
    #版本:v0.1
    
    logdir=/data/logs/ 
    #技术1.log大小
    size=`du -sk $logdir/1.log | awk '{print S1}' 
    
    #如果1.log小于l00MB,则退出脚本 
    
    if [  $size -lt 10240 ] 
    then 
        exit 0
    fi 
    
    #定义函数,如果一个文件存在,则删除 
    function e_df()
    {
        if   [  -f  $1 ]
        then 
            rm -f $1 
        fi 
    }
     cd  $logdir
    
    #如果1.log.1存在,则先把它压缩为1 log.1.gz,这样下面的for循环才不会错
     
    if   [ -f 1.log.1 ] 
    then 
        gzip 1.log.1 
    fi 
    
    #由于1.log.1已经被压缩为1.log.gz,所以可以直接将1.log改名为1.log.1
    
    mv  1.log  1.log.1
    
    #从7到2,倒序循环 
    for i in  `seq 7  -1 2 `
    do 
         #$i2比Si小1
        i2=$[Si-1]
        
        #首先判断1 log.7.gz是否存在,若存在删除 
        e_df  1.Iog. $i.gz
     
        #当1.log.6.gz存在,则把1.log.6.gz改名为1.log.7.gz,以此类推
        if [ -f  1.Iog. $i2. gz ]
        then 
             mv 1.Iog. $i2.gz  1.Iog.$i.gz 
        fi 
    done 
    
    ##说明:由于我们需要按照日志大小切割,所以这个脚本写完后,需要每分钟执行一次,建议添加到公司的监控系统中。
    
  • 相关阅读:
    leetcode 62. Unique Paths
    leetcode 345. Reverse Vowels of a String
    leetcode 344. Reverse String
    Centos7.4 kafka集群安装与kafka-eagle1.3.9的安装
    yarn调度器 FairScheduler 与 CapacityScheduler
    Hive性能优化
    HBase笔记
    Zookeeper笔记
    Hadoop组件详解(随缘摸虾)
    ubuntu18.04.2 hadoop3.1.2+zookeeper3.5.5高可用完全分布式集群搭建
  • 原文地址:https://www.cnblogs.com/linuxprobe-sarah/p/10218021.html
Copyright © 2011-2022 走看看