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版
  • 相关阅读:
    MYSQL索引优化法则
    关于String对象到底占多少字节?
    类加载的时机
    HotSpot 虚拟机对象探秘
    JVM 内存结构
    Tomcat10-记录踩坑
    笔记 | 吴恩达新书《Machine Learning Yearning》
    图像分割论文 | DRN膨胀残差网络 | CVPR2017
    除了边缘场景,你还能在哪里使用K3s?
    基础指南:如何在K3s中配置Traefik?
  • 原文地址:https://www.cnblogs.com/shangdelu/p/9564945.html
Copyright © 2011-2022 走看看