[개념]
rsync 옵션
| -r | 재귀적 복사 | ❌ (기본 권한으로 변경됨) | ❌ (링크 대상 파일 복사) |
| -a | 재귀적 + 메타데이터 보존 | ✅ | ✅ |
| -R | 경로 구조 유지 | ❌ (기본 권한으로 변경됨) | ❌ (링크 대상 파일 복사) |
- -a: 퍼미션, 소유자, 그룹, 수정 시간, 심볼릭 링크 등 원본 파일 유지
- -R: 경로 구조 유지
원본:명령:결과:→ 원래 있던 /home/user/project/ 폴더 경로까지 그대로 가져옴. - /backup/home/user/project/file.txt
- rsync -R /home/user/project/file.txt /backup/
- /home/user/project/file.txt
rsync와 cp는 모두 파일을 복사하는 명령어지만, 작동 방식과 주요 용도에 큰 차이가 있습니다. cp는 단순히 파일을 복사하는 반면, rsync는 원격 또는 로컬에서 파일을 동기화하는 데 특화된 도구입니다.
cp (copy)
cp는 가장 기본적인 파일 복사 명령어입니다.
- 작동 방식: 소스 디렉터리나 파일의 내용을 대상 위치로 온전히 복사합니다. 파일이 이미 존재하든 아니든, 소스 파일 전체를 다시 덮어쓰거나 복사합니다.
- 주요 용도: 단일 파일 또는 디렉터리를 같은 시스템 내에서 복사할 때 사용합니다. 간단하고 빠르지만, 이미 존재하는 대용량 파일을 덮어쓸 때는 비효율적일 수 있습니다.
- 예시:
-
Bash
cp /home/user/document.txt /tmp/document.txt # 파일 복사 cp -r /home/user/project /tmp/ # 디렉터리 복사 (하위 파일/폴더 포함)
rsync (remote synchronize)
rsync는 파일과 디렉터리를 효율적으로 동기화하는 명령어입니다.
- 작동 방식: 소스 파일과 대상 파일의 내용을 비교하여, 변경된 부분만 전송합니다. 이로 인해 네트워크 트래픽이나 복사 시간이 크게 절약됩니다. 특히 원격 시스템 간의 동기화에 매우 강력합니다.
- 주요 용도:
- 로컬/원격 동기화: 로컬 디스크 간, 또는 로컬과 원격 서버 간의 백업 및 동기화에 최적화되어 있습니다.
- 증분(incremental) 백업: 변경된 부분만 전송하기 때문에 효율적인 증분 백업을 구현할 수 있습니다.
- 주요 옵션:
- -a (archive): 재귀적(recursive)으로 디렉터리를 복사하고, 심볼릭 링크, 권한, 소유자, 그룹, 시간 정보 등을 그대로 보존합니다. 백업이나 동기화 시 가장 흔하게 사용되는 옵션입니다.
- -v (verbose): 자세한 진행 상황을 출력합니다.
- -z (compress): 전송 중 데이터를 압축하여 전송 효율을 높입니다.
- -h (human-readable): 숫자 단위를 사람이 읽기 쉽게 표시합니다.
- --delete: 소스에는 없고 대상에만 있는 파일을 삭제하여 소스와 대상을 완전히 동일하게 만듭니다.
- 예시:
-
Bash
# 로컬에서 디렉터리 동기화 rsync -avh /home/user/project/ /tmp/project/ # 원격 서버로 디렉터리 동기화 (백업) rsync -avz /home/user/data/ user@remote_server:/mnt/backup/
rsync vs. cp 핵심 비교
| 특징 | cp | rsync |
| 주요 기능 | 파일/디렉터리 복사 | 파일/디렉터리 동기화 |
| 전송 효율 | 항상 전체 파일 복사 | 변경된 부분만 전송 |
| 네트워크 | 네트워크 기능 없음 | 원격 시스템 간 전송에 최적화 |
| 권한 보존 | -p 옵션 필요 | -a 옵션에 포함되어 기본 보존 |
| 용도 | 간단한 로컬 복사 | 백업, 동기화, 대용량 파일 전송 |
'기타' 카테고리의 다른 글
| 08. 로그 (1) | 2025.08.28 |
|---|---|
| 06. FG BG nohup & (0) | 2025.08.28 |
| 04. 파일 권한 및 파일 관리 (2) | 2025.08.28 |
| 03. 프로세스 (관리) (0) | 2025.08.28 |
| 02. shell과 환경변수 (2) | 2025.08.28 |