일요일엔 전체백업, 그이외엔 증분백업하는 스크립트
조건
1. /home 폴더를 백업
2. 일요일에는 이전 백업을 삭제하고 전체백업
3. 그 이외의 날에는 만약 전체백업이 없으면 전체백업
전체백업이 존재하면 증분백업
backupDIR.sh 파일 생성
#!/bin/bash
# Full & Incremental backup Script
DIRECTORY="/home"
BACKUPDIR=/backup
INCREMENTAL=$BACKUPDIR/backuplist
day=`date +%d`
week=`date +%a`
DM=`date +%m-%d`
if [ ! -d $BACKUPDIR ]; then
mkdir $BACKUPDIR
fi
if [ ! -f $BACKUPDIR/Full-backup* ]; then
tar cpfz $BACKUPDIR/Full-backup-$DM.M.tar.gz -g $INCREMENTAL $DIRECTORY
else
if [ $week = "일" ]; then
# date 명령어로 날짜가 한글로 출력되는지 영문인지 확인!
rm -f $BACKUPDIR/*
tar cpfz $BACKUPDIR/Full-backup-$DM.M.tar.gz -g $INCREMENTAL $DIRECTORY
else
tar cpfz $BACKUPDIR/Incre-backup-$DM.M.tar.gz -g $INCREMENTAL $DIRECTORY
fi
fi
이제 날짜를 일요일로 바꾼 후 스크립트를 실행합니다.
date -s "2024-07-07 12:12:12"
bash backupDIR.sh
스크립트에서 지정한 /backup 폴더에 풀백업 파일과 백업리스트가 생성됩니다.
테스트를 위해 계정을 다음 날짜로 바꾼 후 계정을 생성하고 백업해 보겠습니다.
계정을 생성하는 이유는 전체백업 이후
증분백업과 차이점을 만들어주기 위해서 입니다.
date -s "2024-07-08 12:12:12"
useradd test2
bash backupDIR.sh
일요일이 아니므로 증분백업 되었음을 확인할 수 있습니다.
한번 더 증분백업 한후 확인한 결과
Incre-backup-07-09.tar.gz 파일을 확인한 결과
일요일에 전체백업한 후 월요일, 화요일은 증분백업되어 용량이 작고
전체백업 이후 추가한 test유저의 home 폴더 및 파일이 추가되었음을 확인할 수 있습니다.