소개
rsync 명령어 은(는) Linux에서 파일과 디렉터리를 동기화하고 전송하기 위한 가장 강력하고 다재다능한 도구 중 하나입니다. 데이터를 백업하거나, 파일을 미러링하거나, 시스템 간(로컬 또는 원격)에 데이터를 전송해야 하는 경우 등 어떤 경우에도 rsync는 효율적인 파일 관리를 위한 필수 유틸리티입니다.
이 가이드에서는 rsync의 기본 사항, 구문, 일반적인 사용 사례, 그리고 기능을 최대한 활용하기 위한 팁을 살펴봅니다.
rsync란?
Rsync(Remote Sync)은 다음을 위해 설계된 Linux 명령줄 유틸리티입니다:
- 효율적인 파일 전송: 델타 인코딩을 사용하여 파일의 변경된 부분만 전송합니다.
- 백업 및 동기화: 백업을 유지하고 디렉터리를 미러링하는 데 이상적입니다.
- 로컬 및 원격 전송: SSH를 통해 원활하게 동작하여 안전한 원격 작업을 수행합니다.
rsync 사용 방법
기본 구문
rsync의 일반적인 구문은 다음과 같습니다:
rsync [options] source destination
사용 사례 예시
1. 로컬 디렉터리를 원격 서버로 복사하기
rsync -av /local/dir/ user@remote:/remote/dir/
사용된 옵션:
-a: 아카이브 모드(심볼릭 링크, 권한, 타임스탬프 등을 보존합니다).-v: 전송 중 자세한 정보를 제공하는 상세 출력.
2. 원격 서버에서 로컬로 파일 동기화하기
rsync -azP user@remote:/remote/dir/ /local/dir/
사용된 옵션:
-z: 더 빠른 속도를 위해 전송 중 파일 데이터를 압축합니다.-P: 전송 중 진행 상황을 표시하고 중단된 전송을 재개할 수 있게 합니다.
3. 특정 파일 형식을 제외하면서 파일 백업하기
rsync -av --exclude='*.tmp' /source/dir/ /backup/dir/
--exclude 옵션은 지정된 패턴과 일치하는 파일을 건너뜁니다(예: .tmp 파일).
4. 원본에 더 이상 존재하지 않는 파일을 대상에서 삭제하기
rsync -av --delete /source/dir/ /destination/dir/
경고: --delete 를 사용할 때는 실수로 데이터가 손실되지 않도록 경로를 항상 다시 확인하세요.
rsync 사용의 이점
1. 효율적인 전송
rsync는 파일의 변경된 부분만 전송하므로 대역폭과 시간을 절약합니다.
2. 다재다능함
로컬 및 원격 전송을 원활하게 처리하므로 백업, 마이그레이션, 동기화에 이상적입니다.
3. 안정성
재개 가능한 파일 전송을 지원하므로 중단된 작업을 처음부터 다시 시작하지 않고 재개할 수 있습니다.
4. 보안
SSH와 통합되어 원격 연결을 통한 안전한 데이터 전송을 제공합니다.
5. 사용자 지정 가능
파일 제외, 대역폭 제한 설정 등 다양한 옵션을 제공합니다.
6. 크로스 플랫폼 호환성
Linux, Unix, 심지어 Windows(Cygwin이나 WSL 같은 도구를 통해)에서도 동작합니다.
보너스 팁: 드라이 런 모드를 사용하세요!
잠재적으로 파괴적인 rsync 명령(예: --delete 사용)을 실행하기 전에 --dry-run 플래그를 사용하여 작업을 시뮬레이션하세요:
rsync -av --delete --dry-run /source/dir/ /destination/dir/
이렇게 하면 변경 사항을 적용하기 전에 검토할 수 있어 실수로 데이터가 손실되는 것을 방지할 수 있습니다.
참고 자료
자세한 내용은 공식 문서를 확인하세요: