리눅스에서 파일 복사할 때 유용하게 사용한 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 하여 사용하기도 하였다.
사용 후에도 디렉토리 권한 및 소유자 확인을 다시 한번 하자.
반응형