재동기화 (r 이모티콘 동기화 ) 명령은 네트워크는 물론 로컬 스토리지 디스크에서 파일을 동기화할 수 있는 파일 복사 도구입니다.
매우 좋기 때문에 널리 퍼져 있습니다. 일반적으로 파일을 백업하고, 파일 서버를 서로 최신 상태로 유지하고, 웹 앱의 코드와 자산을 서버에 배포하는 데 사용됩니다.
동기화 볼 수 있는 거의 모든 파일을 복사할 수 있고 복사할 수 있으며 파일 크기 및 수정 날짜를 기준으로 동기화하여 변경된 사항과 업데이트해야 할 사항을 확인합니다.
재동기화 명령은 중요하며 이 가이드에서 가장 일반적인 사용 시나리오를 다룰 몇 가지 실용적인 응용 프로그램을 시작하도록 하겠습니다. .
구문
rsync OPTIONS SOURCE DESTINATION
참고:
- OPTIONS는 공백으로 구분된 아래 목록의 옵션 목록입니다.
- SOURCE는 동기화할 파일 또는 폴더의 소스 경로이며 원격 호스트에 대한 세부 정보를 포함할 수 있습니다.
- DESTINATION은 파일 또는 폴더를 동기화하려는 대상의 경로이며 원격 호스트에 대한 세부 정보를 포함할 수 있습니다.
- SOURCE와 DESTINATION은 순서가 맞아야 합니다!
옵션
다음은 rsync에 일반적으로 사용되는 옵션입니다. , 설명서에서 직접:
복사할 내용:
-r, --recursive Recurse into directories -R, --relative Use relative path names --exclude=PATTERN Exclude files matching PATTERN --exclude-from=FILE Read exclude patterns from FILE -I, --ignore-times Don't exclude files that match length and time --size-only Only use file size when determining if a file should be transferred [email protected] --modify-window=NUM Timestamp window (seconds) for file match (default=0) --include=PATTERN Don't exclude files matching PATTERN --include-from=FILE Read include patterns from FILE
복사 방법:
-n, --dry-run Perform a trial run with no changes made -l, --links Copy symlinks as symlinks -L, --copy-links Transform symlink into referent file/dir --copy-unsafe-links Only "unsafe" symlinks are transformed --safe-links Ignore links outside the destination tree --munge-links Munge symlinks to make them safer -H, --hard-links Preserve hard links --devices Preserve device files (super-user only) --specials Preserve special files -D, --devices --specials Preserve devices (super-user only) +files -g, --group Preserve group -o, --owner Preserve owner (super-user only) -p, --perms Preserve permissions --remove-source-files Sender removes synchronized files (non-dir) -t, --times Preserve times -S, --sparse Handle sparse files efficiently -x, --one-file-system Don't cross filesystem boundaries -B, --block-size=SIZE Force a fixed checksum block-size (default 700) -e, --rsh=COMMAND Specify rsh replacement --rsync-path=PATH Specify path to rsync on the remote machine --numeric-ids Don't map uid/gid values by user/group name --timeout=SECONDS Set IO timeout in seconds -W, --whole-file Copy whole files, no incremental checks
목적지 옵션:
-a, --archive Archive mode equals -rlptgoD (no -H,-A,-X) -b, --backup Make backups (see --suffix & --backup-dir) --backup-dir=DIR Make backups into this directory -z, --compress Compress file data during the transfer -c, --checksum Skip based on checksum, not mod-time & size -C, --cvs-exclude Auto ignore files in the same way CVS does --existing Only update files that already exist --delete Delete files that don't exist on the sending side --delete-excluded Also delete excluded files on the receiving side --delete-after Receiver deletes after transfer, not during --force Force deletion of directories even if not empty --ignore-errors Delete even if there are IO errors --max-delete=NUM Don't delete more than NUM files --log-file-format=FMT Log file transfers using specified format --partial Keep partially transferred files --progress Show progress during transfer -P Equivalent to --partial --progress --stats Give some file transfer stats -T --temp-dir=DIR Create temporary files in directory DIR --compare-dest=DIR Also compare destination files relative to DIR -u, --update Update only (don't overwrite newer files)
기타 옵션:
--address=ADDRESS Bind to the specified address --blocking-io Use blocking IO for the remote shell --bwlimit=KBPS Limit I/O bandwidth, KBytes per second --config=FILE Specify alternate rsyncd.conf file (daemon) --daemon Run as a rsync daemon --no-detach Do not detach from the parent (daemon) --password-file=FILE Get daemon-access password from FILE --port=PORT Specify alternate rsyncd port number -f, --read-batch=FILE Read batch file -F, --write-batch=FILE Write batch file --version Print version number -v, --verbose Increase verbosity -q, --quiet Decrease verbosity -4, --ipv4 Prefer IPv4 -6, --ipv6 Prefer IPv6 -h, --help Show this help screen
전체 옵션 목록은 rsync를 참조하세요. 실행하여 사용 설명서:
man rsync
예시
아래에서 각 옵션의 의미를 반복하지 않겠습니다. 옵션이 무엇을 의미하는지 확실하지 않은 경우 위의 목록을 다시 참조하십시오. 잘못된 명령을 실행하여 데이터가 손실되는 것을 원하지 않습니다!
로컬에서 로컬로(단일 파일)
다음은 rsync를 사용하여 로컬 시스템의 한 디렉토리에서 다른 디렉토리로 단일 파일을 동기화하는 방법입니다. :
rsync -zvh /path/to/my-file.tar /path/to/destination/
여기에서 모든 예제는 rsync의 가장 일반적인 사용 시나리오인 동기화 디렉터리에 중점을 둡니다.
로컬에서 로컬로(디렉토리)
한 디렉토리의 모든 파일을 동일한 시스템의 다른 디렉토리로 동기화:
rsync -avzh /path/to/source /path/to/destination
-avzh는 무엇입니까? 병합된 옵션입니다. -a -v -z -h를 입력하는 더 빠른 방법입니다.
로컬에서 원격으로(디렉토리)
로컬 소스 디렉토리의 모든 파일을 네트워크를 통해 원격 컴퓨터의 대상으로 동기화:
rsync -avz /path/to/source/ [email protected]:/path/at/destination/
참고:
- 사용자 이름 원격 시스템의 사용자입니다.
- /path/to/source/ 로컬 컴퓨터의 소스 디렉토리 경로입니다.
- 192.168.1.11 원격 시스템의 IP 주소 – IP 주소 또는 호스트 이름을 사용할 수 있습니다.
- /path/at/destination/ 원격 파일 시스템의 경로입니다.
- 동기화는 rsync를 사용하여 발생합니다. 데몬
SSH(디렉토리)를 사용하여 로컬에서 원격으로
- 옵션을 사용하면 rsync에서 사용하는 프로토콜을 지정할 수 있습니다. SSH를 사용하여 안전하게 파일을 전송하도록 지정할 수 있습니다.
rsync -avzh -e ssh /path/to/source/ [email protected]:/path/at/destination/
로컬로 원격(디렉토리)
네트워크를 통해 원격 컴퓨터의 원본 디렉터리에서 로컬 컴퓨터의 대상으로 모든 파일 동기화:
rsync -avzh [email protected]:/path/to/source /path/to/destination
참고:
- 사용자 이름 원격 시스템의 사용자입니다.
- 192.168.1.11 원격 시스템의 IP 주소 – IP 주소 또는 호스트 이름을 사용할 수 있습니다.
- /경로/대상/소스 원격 파일 시스템의 경로입니다.
- /경로/목적지 로컬 컴퓨터의 대상입니다.
- 동기화는 rsync를 사용하여 발생합니다. 데몬
SSH를 사용하여 로컬로 원격(디렉토리)
rsync -avzh -e ssh [email protected]:/path/to/source /path/to/destination
디렉토리에 표시된 것처럼 로컬에서 원격으로, 원격에서 로컬로, SSH를 사용하여 단일 파일을 동기화할 수도 있습니다.
동기화 시 고려해야 할 기타 사항
대역폭 고려
인터넷을 통해 동기화하는 경우 네트워크의 다른 서비스가 느려지지 않도록 사용되는 대역폭을 제한할 수 있습니다.
rsync -avz --bwlimit 512 /path/to/source/ [email protected]:/path/at/destination/
삭제 고려
파일 또는 폴더가 원본에서 제거되었지만 대상에는 존재하는 경우 원본의 정확한 미러가 되도록 대상에서 파일 또는 폴더를 삭제할 수 있습니다. 이 옵션을 사용하기 전에 항상 삭제를 원하는지 확인하십시오.
rsync -avz --delete /path/to/source/ [email protected]:/path/at/destination/
파일 포함 또는 제외
파일 패턴을 일치시켜 파일 포함 및 제외 – 동기화하고 싶지 않은 파일이 있는 경우 제외할 수 있습니다.
rsync -avz -e ssh --exclude '*' --include 'keep*' /path/to/source/ [email protected]:/path/at/destination/
이 rsync 명령은 'keep-'로 시작하는 파일과 디렉터리만 동기화하고 다른 모든 파일과 디렉터리(*)는 제외합니다.
테스트 실행 고려
테스트 실행 변경될 파일을 인쇄하지만 실제로는 하지 않습니다. 모든 것 – 파일이 동기화되거나 변경되지 않으므로 다양한 옵션을 실험하고 효과를 확인할 수 있습니다.
rsync -avz --dry-run /path/to/source/ [email protected]:/path/at/destination/
결론
시스템에서 많은 수의 파일을 이동할 때 Enter 키를 누르기 전에 입력을 확인하십시오. 잘못된 방향으로 동기화하고 중요한 파일을 제거하는 것을 원하지 않습니다!
Linux Shell 명령에 대한 다른 기사를 확인하십시오!