본문 바로가기
IT/코드샘플

rsync를 활용한 디렉터리 백업 스케쥴러 만들기

by blogger 2022. 6. 27.

 

특정 디렉터리의 파일목록을 주기적으로 백업하여 관리하고자 할 경우 rsync를 활용하여 쉽게 수행할 수 있다.

백업 디렉터리를 rsync를 사용하여 생성할 때 date 정보를 파일명에 추가하고,

tar 로 압축하여 디스크 공간을 확보한다.

이후 설정된 보관주기에 따라 오래된 백업파일을 찾아 삭제하도록 구성하였다.

이렇게 생성한 스크립트 파일을 crontab에 원하는 주기로 설정해 주면 끝!

 

#!/bin/bash

# 보관주기 설정
REMOVE_OLD_DATA_DAY=30
# 원본 디렉터리
FROM_LOCATION=/data/mydata
# 백업 저장소
TO_LOCATION=/data/mydata_backup
# 백업 날짜
BACKUP_DATE=$(date '+%Y%m%dT%H%M%S')
# 백업 디렉터리 이름
BACKUP_DIRECTORY_NM_PREFIX=my-data-full-backup
BACKUP_DIRECTORY_NM=${BACKUP_DIRECTORY_NM_PREFIX}_${BACKUP_DATE}

echo "Backup ${FROM_LOCATION}..."
rsync -azvh ${FROM_LOCATION} ${TO_LOCATION}/${BACKUP_DIRECTORY_NM}

# 압축
cd ${TO_LOCATION}
tar cvjf ${BACKUP_DIRECTORY_NM}.tar.gz ${BACKUP_DIRECTORY_NM}
rm -rf ${BACKUP_DIRECTORY_NM}

echo "Remove old backups $REMOVE_OLD_DATA_DAY days ago."
find ${TO_LOCATION} -ctime +${REMOVE_OLD_DATA_DAY} -type f -name "${BACKUP_DIRECTORY_NM_PREFIX}*" -exec rm -f {} \;
echo "Done."

 

rsync는 다음 참조

 

디렉터리 백업 (복사)에 rsync 를 사용하자

rsync란 무엇인가 rsync는 컴퓨터 시스템 상에서 파일을 효율적으로 전송하고 동기화하기 위한 유틸리티의 하나로, 파일의 타임스탬프와 크기를 검사함으로써 이루어진다. wikipedia 홈페이지 : https:

wiki.tistory.com

 

'IT > 코드샘플' 카테고리의 다른 글

Node.js 와 express로 간단한 HTTP Echo 서버 구성하기  (0) 2022.02.18