zoukankan      html  css  js  c++  java
  • 日志归集脚本

    日志归集需求:归集系统日期前一天的日志,归集到统一目录下,并需要有模块名称和ip标识;

    脚本1:

    #!/bin/bash
    echo "===log backup start==="
    #判断执行用户,为hps用户
    if [ $(whoami) !=  hps ]
    then
        echo "execute  user must be [hps]!"
        exit 2
    fi
    
    #注意月末最后一天日志会在下一个月目录下
    ip=`ifconfig | grep inet | head -1 | awk '{print $2}'`
    month1=`date +'%Y%m'`
    day1=`date +'%Y%m%d'`
    day2=`date -d  "1 day ago" +'%Y%m%d'`
    day3=`date -d yesterday +%F`
    backupDir=/tmp/$ip/$month1/$day2
    mkdir -p $backupDir
    cd   /home/hps/logs
    if [  -d  /home/hps/logs/history ];then
           find  /home/hps/logs/history  -name  "*log*" -type f | grep  $day3 | xargs -I {}  tar  -czf {}.api.$ip.tar.gz
           find  /home/hps/logs/history  -name  "*gz*" | grep  $day3  | xargs -I {}  mv {} $backupDir
    fi
    echo  "===log backup end==="

    脚本2:

    #!/bin/bash
    echo "===log backup start==="
    #判断执行用户,为was用户
    if [ $(whoami) !=  was ]
    then
        echo "execute  user must be [was]!"
        exit 2
    fi
    
    #注意月末最后一天日志会在下一个月目录下
    ip=`ifconfig | grep inet | head -1 | awk '{print $2}'`
    month1=`date +'%Y%m'`
    day1=`date +'%Y%m%d'`
    day2=`date -d  "1 day ago" +'%Y%m%d'`
    day3=`date -d yesterday +%F`
    backupDir=/tmp/$ip/$month1/$day2
    mkdir -p $backupDir
    cd   /home/was/logs
    if [  -d  "/home/was/logs/manage"  -a  -d  "/home/was/logs/monitor" ];then
            #收集管理平台日志
            find  /home/was/logs/manage  -name  "*log*" -type f | grep  $day2 | xargs -I {}  tar  -czf {}.manage.$ip.tar.gz
            find  /home/was/logs/manage  -name  "*gz*" | grep  $day2  | xargs -I {}  mv {} $backupDir
           #收集监控平台日志
            find  /home/was/logs/monitor  -name  "*log*" -type f | grep  $day2 | xargs -I {}  tar  -czf {}.monitor.$ip.tar.gz
            find  /home/was/logs/monitor  -name  "*gz*" | grep  $day2  | xargs -I {}  mv {} $backupDir
    fi
    
    if [  -d  "/home/was/logs/front"  ];then
            #收集前台日志
            find  /home/was/logs/front  -name  "*log*" -type f | grep  $day2 | xargs -I {}  tar  -czf {}.front.$ip.tar.gz
            find  /home/was/logs/front  -name  "*gz*" | grep  $day2  | xargs -I {}  mv {} $backupDir
           #收集除前台目录外的日志
            find  /home/was/logs    (  -path  /home/was/logs/front  )  -prune -o  -print    | grep  $day2 | xargs -I {}  tar  -czf {}.upp.$ip.tar.gz
            find  /home/was/logs    (  -path  /home/was/logs/front  )  -prune -o  -print    |  grep 'tar.gz' | grep $day2 | xargs -I {}  mv {} $backupDir
    fi
    echo  "===log backup end===" 

    说明:

    find排除单个目录,示例:

    find /tmp -path /tmp/abc -prune -o -print

    find排除多个目录,示例:

    find   /tmp      ( -path  /tmp/abc  -o -path /tmp/bcd )  -prune -o   -print

    find   /tmp      ( -path  /tmp/abc  -o -path /tmp/bcd   -o -path  /tmp/cde    )  -prune -o   -print

  • 相关阅读:
    Callable Future 和 FutureTask
    多线程常用工具类
    Servlet的forward与include方法
    Spring MVC 执行流程分析
    使用SpringEL表达式进行三目运算
    推荐10款Java程序员使用的单元测试工具
    使用SpringEL表达式进行方法调用
    使用SpringEL操作List和Map集合
    SpringEL表达式(一)-入门案例
    Servlet的生命周期
  • 原文地址:https://www.cnblogs.com/llwxhn/p/15415500.html
Copyright © 2011-2022 走看看