주요 옵션
`rsync` 명령어의 다양한 옵션들을 조합하여 파일 동기화 및 백업 작업을 설정해 보세요.
1. 기본 동기화
2. 전송 모드 및 옵션
생성된 명령어:
명령어를 조합해 보세요.
설명:
`rsync` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
rsync 작동 원리
`rsync`는 '델타 인코딩(delta encoding)' 알고리즘을 사용하여 파일의 변경된 부분만을 전송함으로써 네트워크 대역폭을 효율적으로 사용합니다. 이로 인해 대용량 파일이나 많은 파일들을 동기화할 때 매우 빠르고 효율적입니다.
rsync의 주요 특징
`rsync`가 다른 복사 도구들과 차별화되는 핵심 기능들입니다.
- 델타 전송 (Delta Transfer): 소스와 대상 파일 간의 차이점만 식별하여 전송합니다. 파일 전체를 다시 복사하는 대신 변경된 블록만 전송하여 효율성을 극대화합니다.
- 증분 백업 (Incremental Backup): 이전 백업 이후 변경된 파일만 복사하므로, 매번 전체 백업을 수행할 필요가 없어 시간과 공간을 절약합니다.
- 원격 동기화: SSH를 포함한 다양한 원격 셸을 통해 암호화된 채널로 파일을 전송할 수 있어 보안성이 높습니다.
- 파일 속성 보존: 아카이브 모드(`-a`)를 사용하면 권한, 소유자, 그룹, 시간 스탬프, 심볼릭 링크 등 파일의 모든 속성을 그대로 유지합니다.
Trailing Slash (경로 마지막 슬래시)의 중요성
`rsync`에서 소스 경로의 마지막에 슬래시(`/`)를 붙이는지 여부는 매우 중요합니다. - `source/`: `source` 디렉토리 **안의 내용물**을 복사합니다. (예: `cp source/* dest/` 와 유사) - `source`: `source` 디렉토리 **자체**를 복사합니다. (예: `cp -r source dest/` 와 유사) 이 차이를 이해하지 못하면 예상치 못한 결과가 발생할 수 있습니다.
사용 예시
`rsync` 명령어의 실용적인 사용 예시들을 통해 파일 동기화 및 백업 전략을 수립해 보세요.
로컬 디렉토리 동기화 (아카이브 모드)
rsync -av /path/to/source_dir/ /path/to/destination_dir/
`source_dir`의 내용을 `destination_dir`로 동기화합니다. 권한, 시간 등 모든 속성을 유지합니다. `source_dir`에 없는 파일은 `destination_dir`에서 삭제되지 않습니다.
원격 서버로 디렉토리 미러링 (백업)
rsync -avz --delete --progress /local/my_data/ user@remote_host:/remote/backup/
로컬의 `my_data` 디렉토리 내용을 원격 서버의 `/backup/` 디렉토리로 미러링합니다. 원본에 없는 파일은 대상에서도 삭제됩니다. 압축을 사용하고 진행률을 표시합니다.
원격 서버에서 로컬로 특정 파일만 가져오기
rsync -avz --include='*.log' --exclude='*' user@remote_host:/var/log/ /tmp/logs/
원격 서버의 `/var/log/` 디렉토리에서 `.log` 파일만 로컬의 `/tmp/logs/` 디렉토리로 가져옵니다.
실제 실행 없이 변경 사항 미리 확인
rsync -avz --delete --dry-run /path/to/source/ /path/to/destination/
실제로 파일을 전송하거나 삭제하지 않고, 어떤 변경이 일어날지 미리 보여줍니다. 중요한 동기화 전에 항상 사용하는 것이 좋습니다.
다른 SSH 포트를 사용하여 동기화
rsync -avz -e "ssh -p 2222" /local/src/ user@remote_host:/remote/dest/
기본 SSH 포트(22)가 아닌 2222 포트를 사용하여 원격 서버와 파일을 동기화합니다.