#!/bin/bash
now_time=`date '+%Y%m%d%H%M%S'`
function mv_file_to_tracebak()
{
if [ -d $path_backup_my/tracebak ]
then
mv backup_log_${now_time}.tar.gz $path_backup_my/tracebak >/dev/null 2>&1
fi
}
function get_time_array()
{
#获得时间数组
number_name_tar_gz=`find ${path_backup_my}/tracebak -type f -name "backup_log_*.tar.gz"`
my_counter=0
for i in $number_name_tar_gz
do
change_ctime=`stat $i|sed -n "7"p|awk -F"." '{print $1}'|awk -F" " '{print $2 " " $3}'`
normal_time=`date +%s -d "$change_ctime"`
normal_time_array[$my_counter]=$normal_time
my_counter=`expr $my_counter + 1`
done
}
function sort_time()
{
get_time_array
#排序,取最小时间点(最早的文件)
#a=(${normal_time_array[*])
n=${#normal_time_array[@]}
for ((i = n - 1; i > 0; --i))
do
for ((j = 0; j < i; ++j))
do
if [[ ${normal_time_array[j]} -gt ${normal_time_array[$((j + 1))]} ]]
then
tmp=${normal_time_array[j]}
normal_time_array[j]=${normal_time_array[$((j + 1))]}
normal_time_array[$((j + 1))]=$tmp
fi
done
done
}
function dalate_tracebak_tar_gz()
{
sort_time
#删除时间最早的文件
#date_time_piont=`date -d @${normal_time_array[0]} "+%Y-%m-%d %H:%M:S"`
for i in $number_name_tar_gz
do
change_ctime=`stat $i|sed -n "7"p|awk -F"." '{print $1}'|awk -F" " '{print $2 " " $3}'`
normal_time=`date +%s -d "$change_ctime"`
if [ "${normal_time_array[0]}" == "$normal_time" ]
then
rm -rf $i
fi
done
}
function rm_tracebak_gar_gz()
{
if [ -d ${path_backup_my}/tracebak ]
then
number_count_tar_gz=`find ${path_backup_my}/tracebak -type f -name "backup_log_*.tar.gz"|wc -l`
if [ $number_count_tar_gz -gt 10 ]
then
#find $path_backup_my/tracebak -type f -name "backup_log_*.tar.gz" -ctime +10|xargs rm -rf
subtraction=`expr $number_count_tar_gz - 10`
for ((k = 1;k<= $subtraction; k++))
do
dalate_tracebak_tar_gz
done
fi
fi
}
function create_tar_gz_file()
{
if [ -d /opt/nastar/var/logs ]
then
path_backup_my_root_dir=nastar
elif [ -d /opt/Nastar/var/logs ]
then
path_backup_my_root_dir=Nastar
fi
path_backup_my=/opt/$path_backup_my_root_dir/var/logs
if [ -f $path_backup_my/backup.log ]
then
number_k=`du $path_backup_my/backup.log|awk -F" " '{print $1}'`
if [ ${number_k} -ge 10150 ]
then
cd $path_backup_my;
tar -zcvf backup_log_${now_time}.tar.gz backup.log >/dev/null 2>&1;
rm -rf backup.log;
mv_file_to_tracebak
fi
fi
}
##########################################################################################################
create_tar_gz_file
rm_tracebak_gar_gz