#!/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 指定解压路径
No Leanote account ? Sign up now.