Solaris와 Linux에서 파일을 비교하는 방법 [닫기]

Solaris와 Linux에서 파일을 비교하는 방법 [닫기]

테스트 목적으로 Solaris와 Linux에 있는 동일한 파일의 내용을 비교하고 싶습니다. 사용할 수 있는 도구가 있습니다. 새로운 도구를 개발하고 싶다면 어떻게 해야 하나요?

우리는 프로젝트를 Solaris에서 Linux로 마이그레이션하고 있습니다. 우리는 최종 출력이 바이너리 형식으로 존재하는지 비교하여 확인하려고 합니다. 두 파일 모두 서로 다른 시스템에 존재합니다. 비교하는 방법을 알려주세요.

답변1

Unix와 Linux에는 파일 비교 도구가 많이 내장되어 있습니다. 어떤 도구를 사용하든 Solaris의 파일과 Linux의 파일에 액세스해야 합니다. 이를 수행하는 방법은 또 다른 이야기이지만 파일을 시스템에 복사하거나 네트워크 공유를 통해 공유할 수 있습니다.

비교할 파일이 다음
/linux/filename.txt
과 같이 간주된다고 가정합니다.
/solaris/filename.txt

명령을 사용하여 비교할 수 있습니다
diff /linux/filename.txt /solaris/filename.txt

네트워크를 통해 전송하고 싶지 않은 바이너리 파일이나 매우 큰 파일의 경우 체크섬을 사용하여 파일이 동일한지 확인할 수 있습니다. 파일이 있는 시스템에서 md5 체크섬을 생성한 다음 비교를 위해 결과를 복사할 수 있습니다. 예를 들어, Solaris에서 md5 체크섬을 얻으려면 다음을 사용할 수 있습니다. digest -a md5 filename

Linux에서는 다음을 사용하여 동일한 효과를 얻을 수 있습니다.

md5sum filename

결과는 복사하여 붙여넣거나 네트워크를 통해 시스템으로 전송할 수 있습니다.

각 md5 체크섬을 파일의 새 줄에 배치하여 모두 동일한지 확인하려면 sort Unique 명령을 사용하세요. 각각의 고유한 "md5 sum"을 인쇄하므로 파일이 동일해야 하는 경우 명령이 한 줄만 출력할 것으로 예상할 수 있습니다.
sort -u md5sum_results.txt

업데이트: 작업을 Solaris에서 Linux로 마이그레이션하고 있으므로 다음과 같은 일반적인 접근 방식을 권장합니다.

  1. Solaris 측에 백업을 만듭니다. 이 모든 것에 대해 생각할 수 있는 방법은 매우 많지만, 특히 이상한 파일 형식을 매우 잘 처리한다는 점에서 cpio가 여러 가지 이유로 제가 선택한 최고의 선택입니다.
    find /source/directory | cpio -oV > /backup/data.cpio

  2. 파일의 체크섬을 확인하십시오.
    digest -a md5 /backup/data.cpio

  3. 다음을 사용하여 네트워크를 통해 파일을 복사합니다.
    scp /backup/data.cpio user@linuxhost:/incoming

다른 옵션으로는 NFS 마운트 및 rsync 등이 있습니다.

  1. Linux 측에서 파일이 수정되지 않았는지 확인하십시오.
    md5sum /incoming/data.cpio

  2. MD5 체크섬이 일치하면 백업을 추출합니다.
    cd /target/directory; cpio -iV < /incoming/data.cpio

참고: scp는 파일을 "손상"시킬 가능성이 없습니다. 체크섬 확인을 건너뛰면 cpio는 일반적으로(항상 100% 보장은 아니지만) 손상을 포착합니다. md5 체크섬은 파일에 대한 신뢰도를 높여주지만 이 수준은 거의 필요하지 않습니다.

관련 정보