본문 바로가기

리눅스

리눅스 rsync 로 백업하고 crontab 걸어서 자동 백업 구성

빠르게 설명 드립니다.

 

 

먼저 rsync 의 로그가 담길 폴더 하나를 만들어 줍니다.

mkdir -p /var/log/rsync

 

 

그 후, 아래와 같이 쉘을 하나 만들고 블럭 안의 내용을 긁어 줍니다.

 

rsync_backup.sh

#!/bin/sh

sudo sh -c 'rsync -avh --delete "/mnt/exHDD/" "/mnt/bk_exHDD" > /var/log/rsync/rsync_$(date '+%Y%m%d').log'

### Delete result files which are older than 2 weeks
sudo find /var/log/rsync/ -name "rsync_*" -mtime +14 | xargs rm -f

 

위 블럭 내용은 간단 합니다.

/mnt/exHDD/ 안에 있는 파일 및 폴더를 모두 /mnt/bk_exHDD 안에 복제 합니다.

(여기서 자세히 보시면 복제 되는 도착지에 /mnt/bk_exHDD 뒤에 / 를 안붙였습니다. 만약 bk_exHDD/ 까지 붙이게 된다면 bk_exHDD/exHDD 라는 폴더가 생기고 그 안에 파일 및 폴더가 들어가 버리니 주의해 주세요)

 

rsync 복제 수행한 결과를 /var/log/rsync/ 안에 날짜와 함께 로그로 남깁니다.

 

그 후 /var/log/rsync/ 안에 쌓인 로그들 중 2주가 지난 로그는 삭제를 해 줍니다.

 

 

자 이제 그러면 crontab 에 등록을 하여 자동으로 rsync 로 백업을 하도록 해 보겠습니다.

 

 

root 계정에서,

crontab -e

 

crontab 화면으로 들어와 졌다면 맨 하단에 아래와 같이 작성해 줍니다. (sh 파일이 있는 경로로 지정해 주시면 됩니다)

00 04 * * * /usr/script/rsync_backup.sh

맨 앞의 00은 분, 두번째 04는 시 를 의미합니다. 따라서 매일 새벽 4시에 해당 스크립트를 수행 할 것 입니다.

 

 

끝.