파일과 폴더를 백업하거나 여러 장치 간에 동기화하는 작업이 필요할 때 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는 파일 복사와 동기화를 빠르고 안전하게 수행할 수 있는 강력한 도구로, 서버 관리나 데이터 백업에 유용하게 활용할 수 있습니다.