拷贝文件shell(异常后退出)+清理过期文件

文章目录

#!/bin/bash

handle_error(){
  echo "command:execute dataBackup.sh occur error"
  exit 1
}
trap 'handle_error' ERR

removeOldZipFiles(){
  basePath=$1
  cleanDate=$2
  echo "clean base path is $basePath"
  for file in ${basePath}*_backupdata.zip; do
          fileName=$(echo $(basename $file) | cut -c 1-8)
        echo $fileName
        if [ $fileName -lt $cleanDate ];then
                rm -r $file
                echo "del file $file"
        fi
  done
  echo "delete old zip files successfully"
}


date=$1
saveDays=$2
env=$4
profile=$3
rpath="hdfs://testdomain/tmp/$profile/TEST_PATH/$date"
lpath="/root/project/spark/$env/TEST_PATH"
vpath="/STASH/TEST_PATH/$env/"
cleandate=$(date -d " -$[saveDays-1] days" '+%Y%m%d')

echo "date: $date,"
echo "cleandate : $cleandate,"
echo "env: $env,"
echo "profile: $profile,"
echo "remote path: $rpath,"
echo "local path: $lpath,"
echo "VMfolder path: $vpath"

container_id=`docker ps -a|grep workspace|grep -v grep|head -n 1|awk '{print $1}'`

echo $container_id

if [[ $container_id != "" ]];then
  if [[ $date != "" && $cleandate != "" && $env != "" && $profile != "" ]];then
        docker exec ${container_id} hdfs dfs -copyToLocal ${rpath} ${lpath}
        cp -R /TEST/projects/spark/${env}/TEST_PATH/${date} ${vpath}
#        docker exec ${container_id} rm -r ${lpath}/${date}
        zip -r ${vpath}${date}_backupdata.zip ${vpath}${date}
        rm -r ${vpath}${date}
        removeOldZipFiles $vpath $cleandate
        echo "finished"
  else
        echo "Invalid parameter found!"
  fi
else
        echo "Not found docker container!"
fi


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值