backup

#!/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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值