파이프 체크섬

파이프 체크섬

나는 엄청난 양의 데이터(일종의 백업)를 구축하고 이를 네트워크(ssh 또는 rsync)를 통해 다른 호스트로 보내고 싶습니다. 원격 호스트에는 데이터를 저장할 공간이 충분하지만 로컬 호스트에는 공간이 부족하여 로컬 파일로 저장할 수 없습니다. 데이터가 파이프라인에 들어갈 때 데이터의 체크섬을 계산하고 생성된 원격 파일의 체크섬과 비교하고 싶습니다. 그래서 저는 파이프라인 중간에 배치하여 통과하는 모든 항목의 체크섬을 계산하도록 할 수 있는 프로그램을 찾고 있습니다.

두 개의 "MITM" 프로그램이 내 머릿속에 떠올랐지 pvmbuffer어느 쪽도 이 기능을 갖고 있지 않은 것 같았습니다. 그리고 cat그것은 또한 dd목표에 미치지 못합니다 :-) 체크섬을 계산하는 다양한 프로그램(예: md5sum, sha1sum등)은 입력을 소비하고 전달하지 않습니다. 돕다? 감사해요!

답변1

다음과 같은 대체 항목을 사용 tee하고 처리 할 수 있습니다.>(…)

cat blob | tee >(md5sum >&2) | ssh user@remote 'tee >(md5sum >&2) >/tmp/blob'

이 파이프는 stdout을 방해하지 않도록 체크섬을 stderr에 기록합니다. 해시를 유지하려면 해시를 파일로 리디렉션할 수 있습니다.

cat blob | tee >(md5sum >blob.md5) | <your pipe>

관련 정보