Skip to main content

적재된 파일을 주기적으로 삭제

적재된 파일을 주기적으로 삭제 

0 6 * * * /data/ext/4TB/backup/NAS/delBackupFile.sh /data/ext/4TB/backup/NAS common
0 7 * * * /data/ext/4TB/backup/NAS/delBackupFile.sh /data/ext/4TB/backup/NAS devops
0 11 * * * /data/ext/4TB/backup/NAS/delBackupFile.sh /data/ext/4TB/backup/NAS showcase1
0 12 * * * /data/ext/4TB/backup/NAS/delBackupFile.sh /data/ext/4TB/backup/NAS scm

delBackupFile.sh

#!/bin/bash

export FinalBackupCnt=120
export FinalBackupDueDay=120
export BackupTarget=$2
export BackupFolder=$1
export NOW=`date +%Y%m%d%H%m`
export FinalBackupDay=`date +%Y%m%d%H%m --date="$FinalBackupDueDay days ago"`



# Backup Delete
DeleteBackupTar()
{
  
  echo "## Old $BackupTarget.tar backup file delete ! ##"
  TotalBackupCnt=`find $BackupFolder -name "*$BackupTarget.tar" | wc -l`
  echo ' >> Total backup files count = ' $TotalBackupCnt
  echo ' >> Final backup files remain count = ' $FinalBackupCnt
  TargetDeleteBackupCnt=`expr $TotalBackupCnt - $FinalBackupCnt`
  if [ $TargetDeleteBackupCnt -lt 0 ]; then
    TargetDeleteBackupCnt=0
  fi
  echo ' > Total backup files count - Final backup files count =' $TargetDeleteBackupCnt
  cd $BackupFolder
  BackupAllFiles=$(find ./ -name "*$BackupTarget.tar" | awk -F "/" '{print $2}' | sort -n)


  cnt=1
  echo ' > ' $FinalBackupDueDay ' day before delete target snapshot list'
  for i in $BackupAllFiles
  do
    backupFileDate=`echo $i | awk -F "-" '{print $1}'`
    echo $cnt " : " $i , $backupFileDate , $FinalBackupDay 
    if [ $backupFileDate -le $FinalBackupDay ]
    then
      echo "     DELETE!"
      if [ $TargetDeleteBackupCnt -ge $cnt ]
      then
           echo "     DELETEED! " $BackupFolder/$i
           echo 'rm $BackupFolder/$i'
      else
           echo "     DELETE SKIP!"
      fi
    else
      echo "     NOtyet Delete date "
    fi
  cnt=$(expr $cnt + 1)
  done
}


if [ $# -ne 2 ];then
        echo "ERROR 1. backup base folder, 2. delete target tar name !"
        echo " ex : /data/ext/4TB/backup/NAS/delBackupFile.sh /data/ext/4TB/backup/NAS devops "
        exit 1
fi
echo -e "\n\n=========== Delete START ! ============="
echo ">> Backup Target : $BackupTarget"
echo ">> DATE : $NOW"
echo ">> Final Backup Due Day : $FinalBackupDueDay"
echo ">> Final Backup Day : $FinalBackupDay\n"

DeleteBackupTar 

echo -e "\n============== $1 Delete Finished  ! ===========\n"