복사 된 파일의 정확성 확인


14

내장 하드 드라이브에서 외장 드라이브로 50 + GB (다른 형식을 포함한 30,000 파일)의 파일을 복사 한 후 모든 것이 올바르게 복사되었는지 확인할 수있는 방법이 있습니까? 또한 작업을 취소하여 중간에 멈추고 나중에 작업을 계속할 때 병합을 말하면 정확성이 떨어질까요?

나는 같은 응용 프로그램을 사용할 수는 back-in-time있지만 파일을 복사 할 때 매우 선택의 여지가 있으며 다음에 copymerge대신 작업 을 사용하려고합니다 replace. 많은 수의 파일을 복사 할 때 권장됩니까?


2
당신은 여기답변을 찾을 수 있습니다 .
Takkat

답변:


16

해시 딥 을 사용하여 백업 / 복원을 확인하고 때로는 RAID에서 파일 시스템 손상을 확인합니다.

속도는 사용하는 해시 함수 (일부는 다른 CPU보다 CPU를 많이 사용함)와 디스크의 읽기 속도에 따라 다릅니다. 내 시스템 hashdeep에서 md5 및 300MB / s 읽기 속도로 시간당 약 1TB를 처리하거나 확인할 수 있습니다.


체크섬을 계산하여 파일에 저장하는 예 :

cd my-data
hashdeep -rlc md5 . > ~/checksums.txt

매개 변수 :

  • r – 재귀
  • l – 상대 경로 사용
  • c – 해시 함수 지정
  • . – 현재 디렉토리에서 재귀 시작
  • > – 출력을 지정된 파일로 경로 재 지정

참고 항목 man 페이지를 .


체크섬 확인 및 차이점 목록 인쇄에 대한 예 :

$ cd /mnt/my-backup
$ hashdeep -ravvl -k ~/checksums.txt .
hashdeep: Audit passed
          Files matched: 40914
Files partially matched: 0
            Files moved: 0
        New files found: 0
  Known files not found: 0

매개 변수 :

  • a – 감사 (알려진 체크섬 목록과 비교)
  • v- 상세 (A 불일치의 목록을 얻기 위해, 여러 v의 수단 더 자세한)
  • k – 알려진 해시 파일

2016 년 3 월 현재 포기 된hashdeep 것으로 보입니다 .


14

rsync에 대한 완벽한 작업처럼 보입니다 . Rsync는 diff를 비교하고 복사합니다.

rsync내가 질문을보고 유틸리티를 먼저 내 마음 떠올랐다. 아래와 같은 작업을 수행하면 디렉토리에 a있지만 파일에 없는 파일을 빠르게 표시 할 수 있습니다 b.

$ rsync -rcnv a/* b/

-r will recurse into the directories
-c will compare based on file checksum
-n will run it as a "dry run" and make no changes, but just print out the files 
   that would be updated
-v will print the output to stdout verbosely

파일의 내용을 비교하고 일치하는지 확인할 수 있기 때문에 이것은 좋은 옵션입니다. rsync델타 알고리즘은 이러한 유형의 사용 사례에 최적화되어 있습니다. 그런 다음 b의 내용과 일치 시키 a려면 -n옵션을 제거 하여 실제 동기화를 수행하면됩니다.

몇 가지 관련 질문 :


1
rsync는 확실히이 작업을위한 도구이지만 diff를 비교하고 복사하지는 않습니다. 크기와 해시를 사용하여 파일을 비교합니다.
저스틴 포스

@JustinForce 크기를 사용합니까? 물론 크기가 다르면 파일이 정확히 동일하지는 않지만 rsync는 매우 다재다능하며 선택적으로 모든 파일을 다시 읽지 않도록 메타 데이터 (예 : 시간)를 신뢰할 수 있습니다. 네트워크를 통해 복사 할 때 롤링 해시를 계산하여 일반적인 부품을 전송하지 않도록 정밀하게 감지하지만 로컬 드라이브에서는 기본적으로 해시가이 역할을 수행하지 않습니다 (사용하는 경우). 짧은 대상에 이미 올바른 내용이 있고 추가 만하면된다고 신뢰하도록 요청할 수도 있지만 주제를 계속 살펴 보자.
Stéphane Gourichon

8

GUI 앱이 파일 및 디렉토리 비교 도구 에서 제안한 경우 ? 당신을 위해 그것을하지 마십시오, diff -rq /path/to/one /path/to/other조용히 두 디렉토리를 통해 재귀를 시도 하고 화면의 차이점 만 기록하십시오.


3

당신이 말하는 상황이 너무 복잡합니다. 복사하려는 모든 파일의 MD5를 계산하는 스크립트를 작성하고 나중에 복사 한 파일과 비교할 수 있습니다.

간단하고 빠른 것을 원한다면 (매우 복잡한 시나리오에서는 작동하지 않을 것입니다) Meld 를 사용할 수 있습니다

sudo apt-get install meld

0

"모든 것이 올바르게 복사되면"체크섬을 포함하는 수정 된 cp (또는 mv)를 사용합니다 (선택적으로 xattr에 저장되므로 소스에 대해 한 번만 계산해야 함) http://sourceforge.net/projects / crcsum /


1
귀하의 답변은 100 % 정확하지만 초보자도 구현하기가 거의 불가능합니다. 따라서 답변을 편집 하고 답변에 다운로드, 컴파일, 설치 및 제거 방법에 대한 단계를 포함하십시오 crccp! ;-) 당신은 항상 당신의 자료의 소스로 당신의 답변의 맨 아래에 링크를 남겨 둘 수 있습니다 ...
Fabby
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.