내 로컬 상자에는 "machineA"
두 개의 폴더 "/primary"
와 "/secondary"
. 이 두 폴더에는 몇 가지 파일이 있습니다. 이제 원격 서버에 많은 파일이 포함된 폴더가 "machineB"
있습니다 ."/bat/snap/"
의 모든 파일 "/primary"
과 "/secondary"
폴더는 원격 서버의 이 디렉터리에 "machineA"
있어야 합니다 . 이제 로컬 상자에 있는 모든 파일 및 폴더의 체크섬을 해당 디렉터리에 있는 원격 서버와 비교 해야 합니다. 체크섬에 불일치가 있는 경우 문제의 모든 파일을 보고하고 싶습니다."machineB"
"/bat/snap/"
"/primary"
"/secondary"
"machineA"
"/bat/snap/"
"machineA"
여기서 md5checksum을 사용해야 합니까?
고쳐 쓰다
이것은 내가 실행 중인 명령입니다 "machineA"
.
find /primary/ /secondary/ -type f | xargs md5sum | ssh machineB '(cd /bat/snap/ && md5sum -c)' | egrep -v 'OK$'
다음은 위 명령을 중지한 후 받은 오류입니다. 두 서버를 모두 확인했는데 이 파일이 존재하는 것을 볼 수 있는데 무엇이 잘못되었나요?
md5sum: /primary/abc_monthly_134_proc_7.data: No such file or directory
/primary/abc_monthly_134_proc_7.data: FAILED open or read
답변1
이를 md*sum
위해 각종 문서가 작성됩니다.
머신 A에서:
find primary secondary -type f | xargs md5sum > checksum.md5
(파일을 컴퓨터 B에 복사)
기계 B:
md5sum -c checksum.md5
편집하다: 단일 명령으로 결합되었습니다.find primary secondary -type f | xargs md5sum | ssh machineB '(cd /location_on_B/ && md5sum -c)' | egrep -v 'OK$'
(또 다른 옵션은 Tell을 사용하여 rsync
평가판 모드에서 실행하는 것 입니다 --checksum
.)