RSYNC : 로컬 및 원격 디렉토리 동기화를위한 강력한 도구
RSYNC는 디렉토리 동기화를위한 강력하고 다재다능한 유틸리티이며 수정 된 파일 부분 만 효율적으로 전송합니다. 따라서 두 시스템 사이에 있거나 단일 시스템에서 자주 업데이트되는 파일로 대규모 디렉토리를 관리하는 데 이상적입니다. SSH 통합, 데이터 압축, 파일 속성 보존 (권한 및 타임 스탬프) 및 소스가없는 대상에서 파일을 제거하는 기능과 같은 기능에 의해 유연성이 향상됩니다.
rsync 명령 구조 :
rsync [옵션] [출처] [대상]
주요 RSYNC 옵션 :
-a
( --archive
) : 중요한 파일 메타 데이터를 보존합니다 (상징 링크, 권한, 타임 스탬프).-v
( --verbose
) : 상세한 출력을 제공합니다.-r
( --recursive
) : 디렉토리를 재귀 적으로 프로세스합니다.--delete
: 소스에없는 대상에서 파일을 제거합니다. 실제 동기화에 필수적입니다.-z
( --compress
) : 전송 중에 데이터를 압축하여 대역폭을 저장합니다.-h
( --human-readable
) : 파일 크기 및 기타 숫자 데이터를 사용자 친화적 인 형식으로 표시합니다.-P
: 결합 --partial
(이력서 중단 된 전송) 및 --progress
(디스플레이 전송 진행).동기화 시나리오 및 설정 :
RSYNC는 다양한 작업에 유용합니다. 데이터 백업, 원격 서버로의 백업, 기계 전체의 파일 공유, 프로덕션에 코드 배포, 개발 및 준비 환경 간의 일관성을 유지합니다.
이 안내서의 예를 위해서는 다음을 사용하겠습니다.
로컬 시스템 : Debian 11 데스크탑, 로컬 디렉토리 : ~/local/sync/
원격 시스템 : Debian 12 Server, 원격 사용자 : ostechnix
, 원격 IP : 192.168.1.12
, 원격 디렉토리 : ~/remote/sync/
기본 사용 :
rsync
가 설치되고 권한이 올바르게 설정되었다고 가정하면 다음 명령은 로컬 디렉토리를 리모콘에 동기화/동기화합니다.
rsync -avzp ~/local/sync/ostechnix@192.168.1.12 : ~/remote/sync/
자리 표시자를 실제 경로, IP 주소 및 사용자 이름으로 교체해야합니다.
--delete
와의 진정한 동기화 :
위의 명령은 소스를 대상으로 반영합니다. 완전한 동기화 (동일한 컨텐츠)를 보장하려면 --delete
사용하십시오.
rsync -avzp -delete ~/local/sync/ostechnix@192.168.1.12 : ~/remote/sync/
이것은 소스에없는 대상에서 파일을 제거합니다. 우발적 인 데이터 손실을 피하기 위해 --delete
로주의를 기울이십시오.
중요한 고려 사항 :
/
)가 중요합니다. 그것들을 생략하면 예상치 못한 디렉토리 생성으로 이어질 수 있습니다.추가 개선 사항 :
키 기반 SSH 인증 : SSH 키 쌍 ( ssh-keygen
)을 생성하고 공개 키를 원격 서버 ( ssh-copy-id
)에 복사하고 기본 키 경로를 사용하거나 rsync
명령에 개인 키 경로를 명시 적으로 지정합니다.
실시간 동기화 (inotify) : rsync
inotifywait
( inotify-tools
패키지에서)와 결합하여 파일 변경시 동기화를 트리거합니다. 샘플 스크립트는 원본 문서에 제공됩니다.
cron
으로 스케줄링 : cron
사용하여 동기화를 자동화하여 특정 간격 (예 : 매일, 시간당)으로 실행됩니다. cron
항목의 예는 원본 문서에 제공됩니다.
명시 적 SSH 키 경로 : 일반적으로 기본 키 위치와 관련하여 불필요하지만 스크립트의 개인 키 경로를 명시 적으로 지정하면 더 많은 제어 기능이 제공됩니다.
결론:
RSYNC는 효율적인 파일 동기화를위한 강력한 도구입니다. SSH 키 기반 인증 및 예약 작업과 같은 옵션을 이해하고 모범 사례를 사용하면 신뢰할 수 있고 안전한 데이터 관리가 가능합니다. rsync
명령 --delete
생산 환경에 적용하기 전에 항상 철저히 테스트하십시오.
위 내용은 Linux에서 RSYNC를 사용하여 로컬 및 원격 디렉토리 동기화 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!