Linux / / 2024. 7. 2. 17:23

주단위로 증분백업 하는 스크립트 만들기

일요일엔 전체백업, 그이외엔 증분백업하는 스크립트

조건

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 폴더 및 파일이 추가되었음을 확인할 수 있습니다.

  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유