rsync는 변경되지 않은 데이터를 불필요하게 전송하지 않으면서 파일과 디렉터리 트리를 동기화합니다. 효율적이라고 해서 모든 실행이 안전한 것은 아닙니다. 소스 구문, 후행 슬래시, 메타데이터, 제외 규칙 및 삭제 정책이 결과를 결정합니다.
네트워크 공유 · 레슨 2
rsync
rsync로 안전한 로컬 또는 SSH 기반 디렉터리 동기화를 미리 보고 실행하며 검증하는 방법을 알아봅니다.
소스와 대상 읽기
로컬에서 source/의 내용을 destination/으로 동기화합니다.
$ rsync -a -- source/ destination/
source/의 후행 슬래시는 “이 디렉터리의 내용을 복사”한다는 뜻입니다. 슬래시가 없는 rsync -a source destination/은 destination/source를 만들거나 갱신합니다. 슬래시 위치를 바꿀 때는 항상 결과 경로를 미리 확인하십시오.
rsync -a source/ destination/에서 소스의 후행 슬래시는 무엇을 뜻합니까?
아카이브 모드 이해하기
아카이브 모드 -a는 흔히 -rlptgoD로 요약되는 재귀 및 메타데이터 보존 옵션 모음과 같습니다. 권한과 플랫폼이 지원하는 범위에서 심볼릭 링크, 권한, 수정 시간, 그룹, 소유자 및 장치나 특수 파일을 보존합니다.
아카이브 모드만으로는 하드 링크, ACL 또는 확장 속성이 보존되지 않습니다. 일반적으로 각각 -H, -A 및 -X가 필요합니다. 또한 아카이브 모드 자체는 이전 버전을 만들지 않습니다.
-a만으로 포함되지 않는 메타데이터는 무엇입니까?
전송 미리 보기
결과가 중요한 동기화를 실행하기 전에 항목별 변경 내용과 함께 시험 실행합니다.
$ rsync -a --dry-run --itemize-changes -- source/ destination/
시험 실행은 현재 스캔을 바탕으로 동작을 예측하지만 실제 명령 전까지 파일이 바뀌지 않는다고 보장하지 않습니다. 정확한 명령을 저장하고 검토한 뒤 양쪽 끝점을 확인한 후에만 --dry-run을 제거해 실행합니다.
--dry-run --itemize-changes는 무엇을 제공합니까?
SSH를 통해 동기화하기
익숙한 원격 피연산자로 원격 호스트에 보내거나 원격 호스트에서 가져옵니다.
$ rsync -a -- source/ alice@example.net:/srv/data/
$ rsync -a -- alice@example.net:/srv/data/ destination/
현대의 rsync는 보통 이 형식에 SSH를 사용하지만 설정된 원격 셸, 호스트 키, 계정 권한 및 원격 rsync 설치 여부를 확인하십시오. -z 압축은 제한된 링크에서 압축 가능한 데이터에 도움이 될 수 있지만 이미 압축된 데이터에는 CPU를 낭비할 수 있습니다.
원격 데이터를 로컬 디렉터리로 가져오는 피연산자 순서는 무엇입니까?
삭제를 파괴적 작업으로 다루기
--delete는 동기화 범위 안에서 소스에 없는 대상 항목을 제거합니다. 끝점을 반대로 지정하거나 슬래시를 잘못 쓰거나 제외 규칙이 틀리면 유효한 데이터가 지워질 수 있습니다. 테스트 대상을 상대로 미리 보고, 복구 가능한 백업을 확보하고, 마운트 상태를 검토하며, 승인 전에 최대 삭제 제한도 고려하십시오.
실제 실행 후에는 종료 상태와 로그를 조사하고 예상 파일 수와 메타데이터를 비교하며 대표 콘텐츠나 복원을 테스트합니다. rsync 동기화만으로는 원치 않는 삭제나 손상도 복제되므로 완전한 백업 전략이 아닙니다.
--delete는 동기화 중 무엇을 할 수 있습니까?
레슨 완료
rsync 완료
이제 파괴적인 예외 상황을 숨기지 않고 rsync 작업을 미리 보고 검증할 수 있습니다.
후행 슬래시로 의도한 디렉터리 배치를 표현합니다.
필요하면 아카이브 모드가 포함하지 않는 메타데이터 옵션을 추가합니다.
실제 동기화 전에 항목별 시험 실행 출력을 검토합니다.
SSH 신원과 끝점 방향을 검증합니다.
삭제와 백업 보존을 명시적인 정책으로 다룹니다.