rsync 기초 사용법과 유용한 옵션 소개

2–3분

파일과 폴더를 백업하거나 여러 장치 간에 동기화하는 작업이 필요할 때 rsync는 매우 유용한 도구입니다. 이 글에서는 rsync의 개념과 기본 명령어를 설명하고, 자주 사용하는 유용한 옵션과 그 사용법을 예제 코드와 함께 소개합니다.

1. rsync란 무엇인가요?

rsync(remote sync)는 파일을 다른 위치로 복사하거나, 두 위치 간 파일을 동기화하는 명령줄 도구입니다. 로컬 시스템 간뿐만 아니라 네트워크를 통해 원격 서버와도 파일 전송이 가능하다는 점에서 특히 편리합니다. rsync의 가장 큰 장점은 변경된 파일만 전송해 속도와 네트워크 자원을 절약할 수 있다는 점입니다.

2. rsync의 기본 명령어와 자주 사용하는 옵션

기본적인 rsync 명령어 형식은 다음과 같습니다:

rsync [옵션] [소스 경로] [대상 경로]

소스 경로에는 복사할 파일이나 디렉토리 경로를, 대상 경로에는 파일을 복사할 위치를 지정합니다. 아래는 자주 사용하는 rsync의 옵션입니다.

  • a: 아카이브 모드로 복사(파일 권한, 소유권, 타임스탬프 등을 보존하면서 파일을 복사).
  • v: 작업 진행 상황을 자세히 출력.
  • z: 전송 중에 파일을 압축해 네트워크 사용량 절약.
  • e: 전송 시 특정 원격 셸을 지정 (예: SSH).

3. rsync를 사용해 원격 서버에 파일 전송하기

로컬 파일을 원격 서버로 전송하려면 rsync와 SSH를 함께 사용하면 안전하고 효율적인 전송이 가능합니다. 다음 예제는 로컬 시스템의 kwater_package 폴더를 IP 주소 192.168.134.102를 가진 원격 서버의 /volume1/delta_package/ 경로로 복사하는 방법입니다.

rsync -avz -e "ssh -p 2200" ./example_package/ root@192.168.134.102:/volume1/example_package/

위 명령어의 각 부분을 살펴보겠습니다:

  • a: 파일 권한, 소유권 등을 유지하며 파일을 복사합니다.
  • v: 복사 중인 파일 목록을 출력해 진행 상황을 확인할 수 있습니다.
  • z: 전송 중 파일을 압축해 네트워크 대역폭을 절약합니다.
  • e "ssh -p 2200": SSH를 통해 포트 2200으로 접속해 보안 전송을 수행합니다.

위 명령어를 실행하면 로컬의 kwater_package 폴더가 원격 서버의 /volume1/delta_package/ 경로에 동일하게 복사됩니다.

4. 유용한 추가 옵션

rsync는 다양한 추가 옵션을 제공하여 더 유연하게 파일 전송을 관리할 수 있습니다. 다음은 자주 사용되는 몇 가지 유용한 옵션입니다:

  • -progress: 전송 속도와 남은 시간 등 자세한 진행 정보를 제공합니다.
  • -delete: 소스에 없는 파일을 대상 경로에서 삭제하여 정확히 일치하는 복사를 수행합니다.
  • -exclude: 특정 파일이나 폴더를 제외하고 전송할 수 있습니다. 예를 들어, -exclude "*.tmp".tmp 파일을 제외할 수 있습니다.
  • P: -progress와 중단된 전송을 이어받는 -partial을 동시에 활성화하여 안정적인 전송을 지원합니다.

이 옵션들은 상황에 따라 더 빠르고 효율적인 rsync 사용을 돕습니다. 예를 들어, 백업 작업 중 --delete 옵션을 사용하면, 소스에 삭제된 파일을 대상에서도 삭제해 데이터 일관성을 유지할 수 있습니다.

마치며

이 글에서는 rsync의 개념과 기본 사용법, 자주 사용하는 옵션을 소개했습니다. rsync는 파일 복사와 동기화를 빠르고 안전하게 수행할 수 있는 강력한 도구로, 서버 관리나 데이터 백업에 유용하게 활용할 수 있습니다.