zoukankan      html  css  js  c++  java
  • 云龙的日志备份脚本

    #!/bin/bash
    set -o nounset
    declare -A dic
    #This script is used for backup logs to oss!
    #Time 2017/11/12
    #Author guoyunlong  gongxiaopo
    ###############Warning#################################
    # 脚本放到需迁移日志服务器的路径为:/root/yunwei/     #
    # 要先配置此机器root到日志服务器的xitong用户免密      #
    # 只需修改:[备份日志所在路径]="保留天数"                        #
    # 备份日志:/app/logs/yunwei/qianyi.log                              #
    # 脚本可在每天5点之前或者14点以后执行                              #
    #######################################################
    dic=(
    [/app/lcagreemer8080/logs]="7"
    [/app/lcagree9901/logs]="30"
    )
    #注意路径最后不要带'/'
    
    
    ##########################################################################################################################
    IP_NEI=`cat /etc/sysconfig/network-scripts/ifcfg-eth0 |grep IPADDR|cut -d = -f2`
    if [ -f /etc/sysconfig/network-scripts/ifcfg-eth1 ]
    then
            IP_WAI=`cat /etc/sysconfig/network-scripts/ifcfg-eth1 |grep IPADDR|cut -d = -f2`
    else
            IP_WAI=no-wai-ip
    fi
    PATH_OSS=/databackup/log/${IP_NEI}_${IP_WAI}             #得到OSS路径
    
    if [ ! -d /app/logs/yunwei ];then mkdir -pv /app/logs/yunwei;fi
    for i in ${!dic[*]};do
        echo "`date +"%Y-%m-%d %H:%M:%S"` ${i}开始备份!" >> /app/logs/yunwei/qianyi.log
        find  $i/  -mtime +${dic[$i]} ! -name "*.gz" ! -name "*.sh" -type f |grep -v ".ssh"| xargs -i gzip {}
        find  $i/  -mtime +${dic[$i]} -name "*.gz" -type f | xargs -i  md5sum {} > /root/yunwei/loglist_src.txt
        if [ ! -s /root/yunwei/loglist_src.txt ];then 
            echo "`date +"%Y-%m-%d %H:%M:%S"` ${i}无需要备份的文件!" >> /app/logs/yunwei/qianyi.log
            continue;fi
        dir=$(awk -F/ '{for(x=2;x<NF;++x) printf "/"$x;printf "
    "}' /root/yunwei/loglist_src.txt|sort|uniq -c|awk '{print $2}')
        for dir_name in ${dir};do
            ssh -n -o StrictHostKeyChecking=no  xitong@10.25.90.142 "mkdir -p ${PATH_OSS}${dir_name}"
        done
        for file_name in  $(awk '{print $2}'  /root/yunwei/loglist_src.txt);do
            scp  -rp ${file_name} xitong@10.25.90.142:${PATH_OSS}${file_name}
        done
        ssh -n xitong@10.25.90.142 "find ${PATH_OSS}${i}/ -type f | xargs -i md5sum {} > $PATH_OSS/loglist_dst.txt"
        scp -rp xitong@10.25.90.142:$PATH_OSS/loglist_dst.txt  /root/yunwei/
        ssh -n xitong@10.25.90.142 "ps aux|grep '/bin/sh -x /databackup/tool/log_tool/upload_log_tool/upload_log.sh'|grep -v grep" > /root/yunwei/tmp
        time=$(date +%H%M)
        if [ ! -s /root/yunwei/tmp ] && [ $time -lt 0500 -o $time -gt 0900 ];then
            while read line;do
                md5=$(echo $line|awk '{print $1}')
                log_file=$(echo    $line|awk '{print $2}')
                grep "$md5" /root/yunwei/loglist_dst.txt
                if [ "$?" == "0" -a "$md5" != "d41d8cd98f00b204e9800998ecf8427e" ];then  
                    echo "${log_file}:备份成功" >> /app/logs/yunwei/qianyi.log
                    rm -rf "$log_file"
                elif [ "$md5" == "d41d8cd98f00b204e9800998ecf8427e" ];then
                    echo "${log_file}:为空文件。" >> /app/logs/yunwei/qianyi.log
                    rm -rf "$log_file"
                else
                    echo   "${log_file}:备份失败。" >> /app/logs/yunwei/qianyi.log
                fi
            done < /root/yunwei/loglist_src.txt
            echo "`date +"%Y-%m-%d %H:%M:%S"` ${i}备份结束!" >> /app/logs/yunwei/qianyi.log
        else
            echo "${time} 日志服务器upload_log.sh脚本正在运行!"  >> /app/logs/yunwei/qianyi.log
            exit
        fi
    done
    原版
    #!/bin/bash
    set -o nounset
    declare -A dic
    #This script is used for backup logs to oss!
    #Time 2017/11/12
    #Author guoyunlong  gongxiaopo
    ###############Warning##########################################
    # 脚本放到需迁移日志服务器的路径为:/root/yunwei/              #
    # 要先配置此机器root到日志服务器的xitong用户免密               #
    # 只需修改dic里的:[备份日志所在路径]="保留天数"                                        #
    # 如果需要定时执行可添加如下crontab:                          #
    # 0 1 * * * /bin/bash /root/yunwei/log_bak.sh >> /dev/null 2>&1 #
    # 脚本的日志:/app/logs/yunwei/qianyi.log                                                            #
    # 脚本可在每天5点之前或者9点以后执行                                                         #
    ################################################################
    dic=(
    [/app/np2p/lonsyn]="15"
    [/app/np2p/loaner_recv_detl]="15"
    [/app/np2p/obli_right]="15"
    )
    #注意路径最后不要带'/'
    
    
    ##########################################################################################################################
    IP_NEI=`cat /etc/sysconfig/network-scripts/ifcfg-eth0 |grep IPADDR|cut -d = -f2`
    if [ -f /etc/sysconfig/network-scripts/ifcfg-eth1 ]
    then
            IP_WAI=`cat /etc/sysconfig/network-scripts/ifcfg-eth1 |grep IPADDR|cut -d = -f2`
    else
            IP_WAI=no-wai-ip
    fi
    PATH_OSS=/databackup/log/${IP_NEI}_${IP_WAI}                    #得到OSS路径
    
    [ ! -d /app/logs/yunwei ] &&  mkdir -pv /app/logs/yunwei
    for i in ${!dic[*]};do
            echo "`date +"%Y-%m-%d %H:%M:%S"` ${i}开始备份!" >> /app/logs/yunwei/qianyi.log
        find  $i/  -mtime +${dic[$i]} -name "*[0-9][0-9][0-9][0-9]*" ! -name "*.gz" ! -name "*.sh" ! -name "*.pid" -type f |grep -v ".ssh"|
     xargs -i gzip {}
        find  $i/  -mtime +${dic[$i]} -name "*.gz" -type f > /root/yunwei/loglist_src.txt
            if [ ! -s /root/yunwei/loglist_src.txt ];then
                    echo "`date +"%Y-%m-%d %H:%M:%S"` ${i}无需要备份的文件!" >> /app/logs/yunwei/qianyi.log
                    continue;fi
            dirs=$(awk -F/ '{for(x=2;x<NF;++x) printf "/"$x;printf "
    "}' /root/yunwei/loglist_src.txt|sort|uniq -c|awk '{print $2}')
            for dir in ${dirs};do
                    ssh -n -o StrictHostKeyChecking=no  xitong@10.25.90.142 "mkdir -p ${PATH_OSS}${dir}"
            done
        for file in  $(cat /root/yunwei/loglist_src.txt);do
            scp  -rp ${file} xitong@10.25.90.142:${PATH_OSS}${file}
            if [ $? -eq 0 ];then
                echo "${file}:备份成功" >> /app/logs/yunwei/qianyi.log
                rm -rf ${file}
            else
                echo   "${file}:备份失败。" >> /app/logs/yunwei/qianyi.log
            fi
        done
                    echo "`date +"%Y-%m-%d %H:%M:%S"` ${i}备份结束!" >> /app/logs/yunwei/qianyi.log
    done
    修改后BUG版
  • 相关阅读:
    WSP部署错误—SharePoint管理框架中的对象“SPSolutionLanguagePack Name=0”依赖其他不存在的对象
    Elevate Permissions To Modify User Profile
    Error with Stsadm CommandObject reference not set to an instance of an object
    ASP.NET MVC3添加Controller时没有Scaffolding options
    测试使用Windows Live Writer写日志
    配置TFS 2010出现错误—SQL Server 登录的安全标识符(SID)与某个指定的域或工作组帐户冲突
    使用ADO.NET DbContext Generator出现错误—Unable to locate file
    CSS
    HTML DIV标签
    数据库
  • 原文地址:https://www.cnblogs.com/shangdelu/p/9564945.html
Copyright © 2011-2022 走看看