rsync를 사용하여 원격 파일의 체크섬 쿼리

rsync를 사용하여 원격 파일의 체크섬 쿼리

rsync를 사용하여 원격 파일을 전송하지 않고 간단히 체크섬을 얻을 수 있나요?

이는 비교할 일치하는 로컬 파일이 없는 경우 많은 대역폭을 사용하지 않고 원격 파일의 무결성을 확인하는 데 유용합니다. 또한 원격 시스템에 대한 전체 셸 액세스 권한이 없지만(로그인 및 실행 md5sum등의 작업을 수행할 수 없음) rsyncd, 제한된 SSH 등을 통해 rsync 액세스 권한이 있는 경우

답변1

응 넌 할 수 있어

rsync --checksum --dry-run --checksum-choice=xxh128  --out-format="%C" host.example.com:/tmp/foo/hello.txt /dev/null

이는 hello.txt원격 파일의 xxh128 체크섬을 16진수 형식의 표준 출력(예:)에 기록합니다 6bba86c7e069f56d5a10b435f1c8e49c.

어디:

  • --checksum강제 체크섬 계산

  • --dry-run어떤 것도 전송되지 않도록 방지

  • --checksum-choice=xxh128xxh128 해싱 알고리즘 사용을 요청합니다. xxh64또는 md5다양한 다른 방법을 사용할 수도 있습니다 . rsync --version이에 대한 고객 지원을 참조하세요.

    이는 원격 서버가 필요한 알고리즘도 지원하는 경우에만 작동합니다. 일부 서버에서는 옵션을 전혀 제공하지 않을 수도 있습니다. md5만 지원 --checksum-choice하고 제공되지 않으면 사용하지만 --checksum-choice-md5.

  • --out-format="%C"전송된 각 파일의 체크섬만 출력됩니다. "로그 형식" 옵션을 참조하세요.rsyncd.conf(5)추가 정보를 출력할 수 있습니다. Use는 입력 (각각 등) 으로 사용할 수 있는 것과 --out-format="%C %f"동일한 형식으로 출력을 생성합니다 .xxh128sumxxh128sum --checkmd5sum

  • /dev/null로컬 대상 파일로 사용할 수 있는 것이 있으면 됩니다. 대상 파일을 제공하지 않으면 rsync는 원격 파일만 나열하고 원격 서버에 체크섬을 요청하지 않습니다.

또한 여러 원격 파일과 일치하는 패턴을 제공하거나 -r디렉터리 트리의 모든 파일을 재귀적으로 확인하는 데 사용됩니다. 이 경우 /dev/nulltarget을 기존 로컬 디렉터리의 이름으로 바꾸세요. 예를 들어 해당 디렉터리 /tmp에는 기록되지 않습니다.

원격 rsync는 응답을 생성하기 전에 모든 파일을 체크섬할 수 있으므로 시간 초과가 발생하면 문제가 발생할 수 있습니다.

관련 정보