> 파일 및 디렉토리 관리 > rsync-dry-run

rsync-dry-run: rsync 실행 전 미리보기

rsync-dry-run은 실제 파일 전송이나 변경을 수행하지 않고, rsync 명령이 실행될 경우 어떤 파일들이 복사, 삭제 또는 변경될지 미리 보여주는 기능입니다. 이는 주로 'rsync -n' 또는 'rsync --dry-run' 옵션을 사용하여 구현됩니다. 중요한 데이터를 다루기 전에 예상치 못한 결과를 방지하기 위해 반드시 사용해야 하는 안전 장치입니다.

개요

rsync의 드라이 런(dry-run) 모드는 실제 작업을 수행하기 전에 명령의 효과를 시뮬레이션하여 사용자에게 변경 사항을 미리 보여줍니다. 이는 특히 `--delete` 옵션과 같이 파괴적인 작업을 포함하는 복잡한 rsync 명령을 실행할 때 매우 중요합니다.

주요 이점

  • 데이터 손실 방지: 의도치 않은 파일 삭제나 덮어쓰기를 미리 감지합니다.
  • 예상치 못한 변경 확인: 어떤 파일이 전송되거나 변경될지 정확히 파악합니다.
  • 명령어 검증: 복잡한 rsync 옵션 조합이 올바르게 작동하는지 확인합니다.
  • 시간 절약: 대규모 전송에서 불필요한 작업을 미리 걸러냅니다.

주요 옵션

rsync-dry-run은 실제로는 rsync 명령어의 옵션을 활용하는 것이므로, rsync의 주요 옵션 중 드라이 런과 함께 자주 사용되는 것들을 설명합니다.

드라이 런 관련 옵션

일반 rsync 옵션 (드라이 런과 함께 사용)

생성된 명령어:

명령어를 조합해 보세요.

설명:

`rsync-dry-run` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

rsync의 드라이 런 모드를 활용하는 다양한 시나리오입니다. 모든 예시는 실제 변경 없이 결과를 출력합니다.

기본 드라이 런

rsync -avn /path/to/source/ /path/to/destination/

소스 디렉토리의 내용을 대상 디렉토리로 동기화할 때 어떤 파일이 전송될지 미리 확인합니다.

삭제 옵션과 함께 미리보기

rsync -avn --delete /path/to/source/ /path/to/destination/

대상 디렉토리에만 있는 파일을 삭제할 경우 어떤 파일이 삭제될지 미리 확인합니다. 매우 중요한 단계입니다.

원격 서버로의 드라이 런

rsync -avn /path/to/local/ user@remote_host:/path/to/remote/

원격 서버로 파일을 전송하기 전에 어떤 파일이 전송될지 미리 확인합니다.

특정 파일 제외 및 포함 드라이 런

rsync -avn --exclude='*.log' --include='data/' --include='*/' --exclude='*' /path/to/source/ /path/to/destination/

특정 확장자 파일을 제외하고, 특정 디렉토리만 포함하는 복잡한 필터링 규칙이 어떻게 적용될지 미리 확인합니다.

팁 & 주의사항

rsync의 드라이 런 기능을 효과적으로 사용하기 위한 팁과 주의할 점입니다.

항상 먼저 드라이 런 사용

특히 `--delete` 옵션이나 복잡한 필터링 규칙을 사용할 때는 실제 rsync 명령을 실행하기 전에 반드시 `-n` 옵션을 사용하여 결과를 확인하세요. 이는 돌이킬 수 없는 데이터 손실을 방지하는 가장 좋은 방법입니다.

  • **안전 제일:** 중요한 데이터 동기화 시에는 항상 `rsync -avn ...`으로 시작하세요.
  • **출력 분석:** 드라이 런의 출력을 꼼꼼히 확인하여 예상과 다른 부분이 없는지 검토하세요.

rsync 설치 확인

rsync는 대부분의 Linux 시스템에 기본 설치되어 있지만, 만약 없다면 패키지 관리자를 통해 설치해야 합니다. (예: `sudo apt install rsync` 또는 `sudo yum install rsync`) rsync-dry-run은 rsync 명령의 옵션을 사용하는 것이므로, rsync가 설치되어 있어야 합니다.

슬래시(/)의 중요성

소스 경로 끝에 슬래시(/)를 붙이는지 여부에 따라 rsync의 동작이 달라집니다. 드라이 런으로 이 차이를 명확히 이해할 수 있습니다.

  • `source/`: source 디렉토리의 *내용물*을 대상 디렉토리로 복사합니다.
  • `source`: source 디렉토리 *자체*를 대상 디렉토리 안에 복사합니다.

동일 카테고리 명령어