빠르게 설명 드립니다.
먼저 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시에 해당 스크립트를 수행 할 것 입니다.
끝.
'리눅스' 카테고리의 다른 글
라즈베리파이에 DDNS 부여해서 고유 도메인 주소 주는 방법 (0) | 2021.01.19 |
---|---|
리눅스 CLI 에서 screen 사용하면 작업 또는 프로세스 돌리고 창 닫아도 된다 (0) | 2021.01.18 |
라즈베리파이에 쿠버네티스 설치 후 CPU 온도, 메모리 사용량, 디스크 사용량, 파드(Pod) 및 주요 서비스 상태 출력 하기 (0) | 2021.01.18 |
리눅스 새 디스크를 파티션 나누고, pv, vg, lv 구성 후 포맷하고 사용하기까지의 과정 (0) | 2020.12.26 |
umount 하려는 디스크에 프로세스가 사용 중 일때 (0) | 2020.12.25 |