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