특정 디렉터리의 파일목록을 주기적으로 백업하여 관리하고자 할 경우 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."
'IT > 코드샘플' 카테고리의 다른 글
Node.js 와 express로 간단한 HTTP Echo 서버 구성하기 (0) | 2022.02.18 |
---|