Ubuntu / Linux에 복사 및 검증 명령이 있습니까?


23

모든 디지털 사진을 두 곳에 백업했습니다. 나는 cp 명령을 사용했지만 개인 가치를 부여 받아보다 안정적인 방법이 있는지 궁금해하기 시작했습니다. 나는 Linux, Bash, Perl 등에 익숙하지 않으므로 md5 해시를 복사하고 비교할 무언가를 작성할 수는 있지만 이미 존재하는지 (재발 명, 바퀴 및 기타) 궁금합니다.

복사 및 (확인 | 유효 | 확인 | 해시 | 확인)에 대한 대부분의 인터넷 검색은 rsync를 나타냅니다. 그러나 내가 알 수있는 한 rsync는 해시 만 사용하여 파일을 업데이트 해야하는지 확인합니다. 나중에 해시 비교를 수행하지 않습니다.

이를 위해 특히 파일은 이진 파일이며 일반적으로 8-10MB입니다. 유틸리티에 대한 권장 사항이나 DIY 솔루션에 대한 지침은 대단히 감사하겠습니다.


어때 조화 ? 양방향 동기화에 사용되지만 파일의 체크섬을 반드시 확인합니다.
테이퍼

답변:


19

에서 옵션 man rsync아래 -c:

-c, --checksum : 모드 시간 및 크기가 아닌 체크섬을 기준으로 건너 뜁니다.

rsync는 파일이 전송 될 때 생성되는 전체 파일 체크섬을 확인하여 전송 된 각 파일이 수신 측에서 올바르게 재구성되었는지 항상 확인하지만 전송 후 자동 확인은이 옵션과 관련이 없습니다. 전송 전 "이 파일을 업데이트해야합니까?" 검사.


7
일부 사람들은 rsync 매뉴얼이 기본 사후 복사 검사에 대해 오도하는 것으로 나타났습니다. unix.stackexchange.com/a/66702/148560 그러한 검사는없는 것 같습니다. 모든 사본을 확인하려면 --checksum 옵션을 사용하여 다른 rsync를 수행해야한다고 그들은 말합니다.
Rotareti

5

몇 년 전에 나는 당신과 같은 요구를 가지고있었습니다. 내가 선택한 솔루션은 스토리지 서버의 ZFS-FUSE 드라이버를 통해 ZFS를 사용하는 것입니다. 내 생각은 내 개인 사진, 스캔 한 문서 및 기타 유사한 파일이 가끔씩 만 액세스 할 수있는 파일이므로 파일이 손상되어 파일이 손상된 것을 알기까지 1 년 이상이 걸릴 수 있습니다. 드라이브 에러 등.

그때까지 내가 가진 모든 백업 사본은이 비트 회전 된 파일 버전 일 수 있습니다.

ZFS는 데이터를 읽는 동안 드라이브가 읽기 오류를보고하지 않더라도 개별 디스크에 저장된 데이터의 오류를 감지하고 복구 할 수 있다는 점에서 RAID-5에 비해 이점이 있습니다. 체크섬을 통해 디스크 중 하나가 손상된 정보를 반환했음을 감지하고 중복 데이터를 사용하여 해당 디스크를 복구합니다.

ZFS의 체크섬이 설계되는 방식으로 인해 자주 사용하지 않는 데이터를 장기간 저장하는 데 의존 할 수 있다고 생각했습니다. 매주 "zpool scrub"을 실행하여 모든 데이터를 읽고 다시 읽고 체크섬을 확인합니다.

ZFS-FUSE는 지난 몇 년 동안 저에게 아주 좋은 성과를 보여주었습니다.

먼 옛날, 클라이언트의 경우 특정 디렉토리에 저장된 모든 파일에 체크섬 정보를 저장하는 데이터베이스 시스템을 구현했습니다. 그런 다음 주기적으로 실행되는 다른 스크립트를 사용하여 데이터베이스에 저장된 체크섬에 대해 파일을 확인했습니다. 이를 통해 손상된 파일을 신속하게 감지하고 백업에서 복원 할 수 있습니다. 우리는 기본적으로 ZFS가 내부적으로 수행하는 것과 동일한 종류의 검사를 구현했습니다.


다운 투표를해야하는 이유 의견이 남지 않았으므로 "-1, 동의하지 않음"이라고 가정하겠습니다. :-)
Sean Reifschneider가

...하지만 그때 : 어떤 부분 에 동의하지 않습니까? 이 질문에 대해 약간의 주제가 아닐지라도, 이것은 나에게 견고하게 들립니다. 따라서 downvote가 "질문에 대한 답변이 아님"이되기를 바랍니다. 위의 실제 결함에 대해 우리를 잊게 만드는 것이 아닙니다.
Arjan

나는 오늘 아침에 비트 로트에 대한 걱정 때문에 icyrock이 묻고 있다고 가정하고 있음을 깨달았습니다. 그러나 어쩌면 다를 수도 있습니다. 유스 케이스가 무엇인지 상상할 수 없지만 파일 시간을 변경하지 않고 파일 내용을 합법적으로 변경합니다.
Sean Reifschneider

OP의 관심사는 전송 중 데이터 손상이라고 생각합니다. 파일을 복사하면 사본이 원본과 다릅니다.
Jon Bentley

btrfs? 그것은 체크섬이 있고 네이티브입니다 ...
Dmitry Kudriavtsev


1

원하는 유틸리티 (로그로 해시 된 복사 + 해시 확인)를 수행하는이 유틸리티 (Linux 및 Windows)를 발견했습니다 .http : //sourceforge.net/projects/quickhash/

유일한 단점은 GUI로만 존재한다는 것입니다 (명령 줄 액세스 없음)

v1.5.0부터 선택한 소스 폴더를 해시 한 다음 대상 폴더로 복사 및 재구성하여 내용을 다시 해시하여 확인할 수 있습니다. 1.5.5부터 선택한 파일 마스크도 사용할 수 있습니다 (* .doc; * .xls 등).


0

파일을 로컬로 복사하는 경우 ( 등 이 cp아닌 참조로 암시 된 것처럼 scp) cmp소스 및 대상 파일 만 ...하지만 실제로 cp는 명령 줄이나 실행 반환 값), 작동하지 않는다고 믿을 이유가 없습니다.

실제로 중복 백업을 원한다면 dropbox 와 같은 원격 솔루션을 고려하십시오. .


+1. 이 대답이 왜 하나의 명령이 아닌 두 개의 명령이 필요하지만 문제에 대한 완벽한 유효한 해결책이 되었기 때문에 왜 다운 답을 받았는지 명확하지 않습니다.
Jon Bentley

이 답변을 사용하려면 여러 파일과 폴더를 고려하지 않으므로 루프가 포함 된 스크립트를 작성해야합니다.
Gringo Suave
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.