os/Linux

Backup rsync

C/H 2018. 7. 24. 11:38


Installation

# Ubuntu
sudo apt-get install rsync

# CentOs
yum install rsync

Backup (내부 백업)

# Directory1 에서 Directory2로 백업

rsync -av --delete /Directory1/ /Directory2/

Options

-a
재귀 (디렉토리로 반복), 링크 (심볼릭 링크로 심볼릭 링크 복사), perms (사용 권한 유지), 시간 (수정 시간 보존), 그룹 (그룹 보존), 소유자 (소유자 보존), 장치 파일 보존 및 특수 보존 파일.
(단 전송시 타임스탬프나 permission을 보존하지 않는다)
-u
목적지 파일이 변경되었을 시 덮어쓰지 않는다.
-d
디렉토리 구조만 복사한다. 파일은 제외
-v
verbose : 자세한 정보. rsync가 백업하는 내용을 정확하게 볼 수 있다.
-a
archive mode. -r, -t(타입스탬프 보존), -l (심볼릭 링크 보존), -p(permission 보존), -g(g그룹 보존), -o(소유자 보존 - root 만 가능), -D(device, special 파일 보존)과 동일하다. 일반적으로 rsync 로 복제시 -a 옵션에 -z 옵션을 추가하면 충분하다.
-z
데이타 압축
-h
사람이 읽을 수 있는 출력 형식 및 숫자 형식
–delete
Directory1에없는 파일을 Directory2에있는 모든 파일을 삭제하도록 rsync에 알린다.
--progress
전송 진행 내역 보기

External Backup (외부 백업)

# ssh를 이용해 로컬 /Directory1/ 폴더를 원격(192.168.235.137)서버 username계정 /Directory2/ 로 백업한다.
rsync -av –delete -e ssh /Directory1/ username@192.168.235.137:/Directory2/
username@192.168.235.137`s password:

# 22번 포트외 다른 포트를 이용할 경우
rsync -av –delete -e 'ssh -p 12345' /Directory1/ username@192.168.235.137:/Directory2/
username@192.168.235.137`s password:

Using Crontab Backup (자동 백업)

crontab -e

# 매일 22:00분에 rsync 실행
0 22 * * * rsync -av --delete /Directory1/ /Directory2/

Using Zip Backup

# /Directory1/ 을 /pathname/archive.zip으로 압축 후 /pathname/ 폴더를 /Directory2/로 백업
zip /pathname/archive.zip /Directory1/ && rsync -av --delete /pathname/ /Directory2/


반응형