공부/리눅스

리눅스 파일 동기화(복사) 명령어 rsync

2020. 11. 29. 17:58

리눅스에서 파일 복사할 때 유용하게 사용한 rsync에 대해서 정리해보고자 한다.

 

rsync

원격 혹은 로컬 간 파일을 복사하는 리눅스 기본 명령어

전체 파일을 복사하는 것이 아닌 변경사항만 의 동기화하여 속도가 빠르고 네트워크 최소화한다.

 

기본적인 옵션은 다음과 같다

  • -v : verbosity를 높이는 옵션 (복사 과정 자세하게 노출)
  • -z : compress 하여 복사
  • -h : human (사람이 읽기 쉬운 형태로 노출)
  • -a (same as -rlptgoD) : -rlptgoD와 같음. 아카이브 모드. symlink, 권한, timestamp와 같은 속성 그대로 복사
  • -r : 디렉토리를 복사
  • -l : symlink 형태로 복사
  • -p : 파일, 디렉토리 권한을 유지
  • -t : 수정시간 유지하
  • -g : 그룹 속성 유지.
  • -o : 소유자 속성 유지

사용법

rsync [option] [path] [username]@[host]:[path]

 

예시

로컬에서 원격지로 디렉토리 전부 속성 그대로 보내는 경우

로컬에서 원격지로 전송

원격지에서 확인

원격지로 디렉토리 전체가 잘 이동된 것이 확인된다.

마무리

주로 속성은 그대로 두고 디렉토리 단위로 원격으로 이동시킬때 많이 사용하였다.

매우 유용하였지만 옵션을 잘못 두고 사용할 경우 예상치 못한 오류로 종종 고생한 적이 있었다.

때문에 원격지의 /tmp 경로에 먼저 복사 후 mv 하여 사용하기도 하였다.

사용 후에도 디렉토리 권한 및 소유자 확인을 다시 한번 하자.

반응형