#給文件加上時間戳後綴
#參數$1 文件名
function filenameConvert(){
timestamp=$(date +%Y%m%d%H%M%S)
#timestamp=`echo $timestamp`
RETVAL=$1.$timestamp
}
#查找對應文件夾下的最老文件
#參數$1 目錄
function searchdir(){
oldestlog=`ls -rt $1 |head -n 1|awk '{print $1}'`
}
#當日志備份目錄達到一定大小時,刪除最老的文件
clear_old_log(){
#cd $logBackupDir
while true;
do
logsize=`du -ms $logBackupDir |awk '{print $1}'`
if [ $logsize -gt $logBackupMaxSize ];
then
searchdir $logBackupDir
rm -rf $logBackupDir/$oldestlog
#echo $logBackupDir/$oldestlog
#echo $oldestlog
#break;
else
break;
fi
done
}
backup_log_process(){
cd $logSaveDir
for i in *; do
file_size=`du -m $i |awk '{print $1}'`
case $i in
b.log | aabb.txt | aa.rar |\
a.log)
if [ ! -d $logBackupDir ]; then
mkdir -p $logBackupDir
fi
if [ $file_size -gt $logFileMaxSize ]; then
filenameConvert $i
cp $logSaveDir/$i $logBackupDir/$RETVAL
echo "">$logSaveDir/$i
clear_old_log
fi
;;
*)
#不重要的文件,大於指定大小的也清空,不備份
if [ $file_size -gt $logFileMaxSize ]; then
if [ ! -d $logSaveDir/$i ]; then
echo "">$logSaveDir/$i
echo $i
fi
fi
esac
done
}
#備份目錄
logBackupDir=/tmp/hmbackup
#備份目錄大小上限M
logBackupMaxSize=20
#日誌存放目錄
logSaveDir=/tmp
#日誌多大可備份,單位M
logFileMaxSize=5