리눅스 rsync 사용 방법 (cp 진행률 확인)

리눅스에서 파일을 복사할 때 cp가 자주 사용됩니다. cp는 옮기려는 파일이 클수록, 파일의 권한 설정이 중요할수록 사용하는데 한계가 있습니다. 간단한 예로, cp는 파일이 얼마나 전송되었는지 실시간으로 확인이 안 됩니다. 만약 용량이 큰 파일을 복사하는 경우 포그라운드에서 기약 없이 10분이고 20분이고 기다려야 합니다. 반면 rsync는 전송 진행률을 실시간으로 출력합니다. 이외에도 여러 방면에서 파일 복사 시 필요한 옵션을 제공합니다.

rsync

rsync는 리눅스에서 파일과 디렉토리를 복사하는 데 사용되는 도구입니다.

 

[기본 구문]

rsync [옵션] [원본] [목적지]

아래와 같은 옵션들과 함께 사용 가능합니다.

  • -a : 아카이브 모드로서 원본의 심볼릭 링크, 파일 권한, 파일 수정 시간, 파일 그룹, 파일 소유자 등을 그대로 유지해서 복사합니다.
  • -v : 상세한 출력을 표시합니다.
  • -z : 데이터를 압축해서 전송합니다. 압축된 상태로 붙여 넣는 건 아니고, 목적지에는 압축이 풀린 상태로 복사됩니다.
  • -h : 사람이 읽기 쉬운 형식으로 출력합니다.
  • -P : 전송 진행 상황을 표시하고 중단된 전송을 재개합니다.

 

cp와 rsync 차이

리눅스에서 파일을 복사할 때 cp를 많이 사용합니다. 그래서 비슷한 기능을 수행하는 rsync와 비교가 되곤 합니다. 둘은 모두 파일과 디렉터리를 복사하는 명령어입니다. 다만 cp 대비 rsync는 더 다양한 기능을 제공합니다.

 

cp rsync
로컬 시스템에서 파일을 복사하는데 사용됩니다. 로컬 뿐만 아니라 원격 시스템 간에도 파일 복사가 가능합니다.
기존 파일이 있으면 덮어씁니다. 기존 파일을 확인하고 변경된 부분만 전송하여 시간을 절약합니다(델타 전송 알고리즘).
중단된 복사 작업을 자동으로 재개할 수 없습니다. 중단된 복사 작업을 재개할 수 있습니다.
파일 전송 시 진행 상황을 표시하지 않습니다. 파일 전송 시 진행 상황을 표시할 수 있습니다.
전송 시 파일의 소유권을 사용자 계정으로 저장시킵니다. 전송 시 파일의 소유권, 권한 등을 그대로 복사할 수 있습니다.

 

예시) 전송 진행 상황 확인

rsync -avhP /path/to/source/large_file /path/to/destination/

 

P 옵션을 사용하면 아래와 같은 형태로 데이터 전송 진행 상황을 실시간으로 확인할 수 있습니다. 순서대로 전송된 데이터 크기, 전체 진행률, 현재 전송 속도, 남은 예상 시간을 나타냅니다.

large_file   2.00G  20%   10.2MB/s    0:01:56

 

예시) 로컬 디렉터리 → 로컬 디렉터리 복사

rsync -avhP /path/to/source/ /path/to/destination/

 

예시) 로컬 디렉터리 → 원격 서버 복사

rsync -avhP /path/to/source/ user@remote_host:/path/to/destination/

 

예시) 원격 서버 → 로컬 디렉터리 복사

rsync -avhP user@remote_host:/path/to/source/ /path/to/destination/

 

반응형

댓글

Designed by JB FACTORY