LogBak日志备份
无    699    0    0
swimming
#!/bin/bash
# Swimming for backup log on Appserver
# Time:2017-03-12
# Version:1.4.1
# Tag: change Transfer sytanx.

f_main(){
        ServerIP=`/sbin/ifconfig | grep "Bcast" | cut -d: -f2 | awk {'print $1'}|head -1|awk -F. {'print $3"."$4'}`             #IP3&4
        #backserver
        BackServerIP="X.X.X.X"
        BackPath="logbak"
        #get user name
        userName=`/usr/bin/whoami`
        #get daytime
        keepday=`date -d "1 day ago" +%d`
        delday=`date -d "2 day ago" +%d`
        #Get ALL Log ALLPATH
        PathList=`find ~ -mtime -1 -type f 2>/dev/null | grep logs| awk -F"/logs" {'print $1'}|/usr/bin/uniq`
        AppD=`date -d "1 day ago" +%Y%m%d`
        OldAppD=`date -d "2 day ago" +%Y%m%d`
        #del log tag
        rm -rf /var/tmp/.Transfer${userName}
        TransferLog ${BackServerIP} ${BackPath}
        for AppPath in ${PathList}
        do
                #Change Path
                cd ${AppPath}
                AppNameList=`ls ${AppPath}/webapps`
                AppNameCount=`ls ${AppPath}/webapps|wc -l`
                #Ensure AppName is Not Null
                if [ ${AppNameCount} -gt 0 ];then
                        cd ${AppPath}/logs
                        AppName=`echo ${AppNameList}|sed 's/\( \)\+/\n/g'|/usr/bin/head -1`
                        #Get tarlogList
                        TarLogList=`find . -mtime -3 -type f 2>/dev/null|xargs ls -lh|awk '$7==day' day=${keepday}|awk '{print $NF}'`
                        TmpLog=/var/tmp/logs/${AppName}/${ServerIP}/${AppD}
                        #mkdir filedoer
                        mkdir -p ${TmpLog}
                        #New gt 2app write log
                        if [ ${AppNameCount} -gt 1 ];then
                                echo ${AppNameList}|sed 's/\( \)\+/\n/g' >>/var/tmp/logs/${AppName}/${ServerIP}/app.readme
                        fi
                        echo "Tar log Start:"${AppName}"------"`date` >> /var/tmp/logs/.log.rf${userName}
                        fi
                        echo "Tar log Start:"${AppName}"------"`date` >> /var/tmp/logs/.log.rf${userName}
                        tar -czvPf - ${TarLogList}|openssl enc -e -des3 -k HzYb?2016 -out ${TmpLog}/${AppName}"-"${AppD}.tgz >>/var/tmp/logs/.log.rf${userName}
                        #Trans
                        echo "Transfer log Start:"${AppName}"------"`date` >> /var/tmp/logs/.log.rf${userName}
                        TransferLog ${BackServerIP} ${BackPath}
                        echo "Delete befor yesterday log Start:"${AppName}"------"`date` >> /var/tmp/logs/.log.rf${userName}
                        #Delete log
                        find . -mtime -2 -type f 2>/dev/null|xargs ls -lh|awk '$7==day' day=${delday}|awk {'print $NF'}|xargs rm -rf
                        #delete Tar log
                        rm -rf /var/tmp/logs/${AppName}/${ServerIP}/${OldAppD} >>/var/tmp/logs/.log.rf${userName}
                        echo "The "${AppName}" END! ------"`date` >> /var/tmp/logs/.log.rf${userName}
                else
                        countinue
                fi
        done

        #transfer Log
}

TransferLog(){
        for conut in `seq 240`
        do
                isfile=/var/tmp/.Transfer${userName}
                if [ ! -f "${isfile}" ]
                then
                        /usr/bin/rsync -avzP --bwlimit=5000 --password-file="/var/tmp/scripts/rsync.pwd" /var/tmp/logs/ test@${1}::${2}
                        #error no rsync or rsync error
                        if [ $? -eq 0 ];then
                                /bin/touch /var/tmp/.Transfer${userName}
                                return
                        fi
                else
                        return
                fi
                sleep 10
        done
}
f_main    

使用了解压方式为:openssl enc -d -des3 -k password -in tarfile.tgz |tar xzv

加密方式为:tar -zcvPf - ${filelist} | openssl enc -e des3 -k password -out tarfile.tgz

新解压方式为:

/usr/bin/openssl enc -d -des3 -k 解压密码 -in 解压文件全路径  | tar -xv -C 指定解压路径 



觉得不错,点个赞?
Sign in to leave a comment.
No Leanote account ? Sign up now.
0 条评论
文章目录