복사 된 파일의 정확성 확인 또한 작업을 취소하여 중간에 멈추고 나중에

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

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



답변

해시 딥 을 사용하여 백업 / 복원을 확인하고 때로는 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 것으로 보입니다 .


답변

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옵션을 제거 하여 실제 동기화를 수행하면됩니다.

몇 가지 관련 질문 :


답변

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


답변

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

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

sudo apt-get install meld

답변

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