#!/bin/sh
#给文件加上时间戳后缀
#参数$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
#给文件加上时间戳后缀
#参数$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