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 : <입력>