rsync (동기화)
rsync (Remote sync)
- 파일/디렉토리를 로컬 혹은 원격으로 전송 및 동기화 하기 위한 명령어
- 데이터 백업 하는데 많이 사용한다
- rsync 기본 명령어
rsync [option] [source] [destination]
-
옵션
-r : recursive
-l : symlink 형태로 복사
-p : 권한 유지
-t : 수정시간 유지
-g : 그룹속성 유지
-o : 소유자속성 유지
-a : archive 모드[심볼릭 링크, 파일유저/그룹 권한, timestamp 유지] (= -rlptgoD)
-z : 압축하여 복사
-v : verbose, 복사과정 출력
-h : 사람이 읽기 쉬운 형태로 출력
-e : 원격쉘에 입력할 커맨드 (안전한 통신을 위해 ssh를 사용할 때 입력할 수 있다.)
–delete : 삭제된 파일도 원격에 동기화하여 반영 - rsync 예시
# 로컬
$ rsync -avzh /mysql/backup/ /tmp/db_backup/
# 원격
$ rsync -a --delete /mysql/backup/ root@192.168.0.10:/db_backup/
$ rsync -a --delete /mysql/backup/ -e ssh root@192.168.0.10:/db_backup/
→ 로컬의 /mysql/backup 폴더를 원격(192.168.0.10)의 /db_backup 폴더와 삭제도 반영하여 동기화(복사)
- 원격서버 접속시 password를 요구할 경우
$ ssh-keygen -t rsa # rsa 키생성 $ cat ~/.ssh/id_rsa.pub | ssh root@192.168.0.10 "cat >> .ssh/authorized_keys" password : <입력>