rsync는 데이터를 안전하고 효율적으로 동기화하거나 전송하기 위한 유용한 도구입니다. 주로 파일 및 디렉토리를 로컬 시스템 간이나 원격 시스템 간에 동기화할 때 사용됩니다. 다음은 rsync의 기본적인 사용법과 주요 옵션들을 설명합니다.
### 기본 사용법
1. **로컬에서 로컬로 동기화**
```bash
rsync [옵션] 소스 대상
```
- `소스`: 동기화할 파일이나 디렉토리의 경로
- `대상`: 동기화를 수행할 위치의 경로
2. **로컬에서 원격 서버로 동기화**
```bash
rsync [옵션] 소스 사용자@호스트:대상
```
- `사용자`: 원격 서버의 사용자 이름
- `호스트`: 원격 서버의 호스트 이름 또는 IP 주소
- `대상`: 동기화를 수행할 원격 서버의 경로
3. **원격 서버에서 로컬로 동기화**
```bash
rsync [옵션] 사용자@호스트:소스 대상
```
- `사용자`: 원격 서버의 사용자 이름
- `호스트`: 원격 서버의 호스트 이름 또는 IP 주소
- `소스`: 동기화할 원격 서버의 경로
- `대상`: 동기화를 수행할 로컬 시스템의 경로
### 주요 옵션
- `-v, --verbose`: 자세한 출력을 보여줍니다.
- `-r, --recursive`: 디렉토리를 재귀적으로 동기화합니다.
- `-a, --archive`: 아카이브 모드로 동기화합니다 (권장됨, 퍼미션, 시간 정보 등을 보존).
- `-z, --compress`: 데이터를 전송할 때 압축하여 전송합니다.
- `-u, --update`: 대상보다 최신 파일만 업데이트합니다.
- `-n, --dry-run`: 실제로 동기화하지 않고 시뮬레이션 모드로 실행합니다.
- `--delete`: 소스에 없는 파일을 대상에서 삭제합니다.
- `--bwlimit=KBPS`: 네트워크 대역폭 제한을 설정합니다 (KB/s 단위).
### 예제
1. 로컬에서 로컬로의 동기화:
```bash
rsync -av /path/to/source/ /path/to/destination/
```
2. 로컬에서 원격 서버로의 동기화:
```bash
rsync -av /path/to/source/ user@remote_host:/path/to/destination/
```
3. 원격 서버에서 로컬로의 동기화:
```bash
rsync -av user@remote_host:/path/to/source/ /path/to/destination/
```
4. 네트워크 대역폭 제한 설정:
```bash
rsync --bwlimit=1000 -av /path/to/source/ /path/to/destination/
```
이렇게 rsync를 사용하여 파일 및 디렉토리를 동기화하거나 백업하는 데 유용하게 활용할 수 있습니다. rsync의 자세한 옵션 및 사용법은 `man rsync` 명령어로 매뉴얼을 참조하면 더욱 다양한 기능을 알아볼 수 있습니다.