HOST에서 : 적재된 파일을 주기적으로 삭제
적재된 파일을 주기적으로 삭제
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"