로컬 파일과 원격 파일간에 차이를 실행


39

나는 호스트를 통해 연결되어 있으며 diff를 실행하기 전에 먼저 원격 파일을 수동으로 다운로드 할 필요없이 특정 구성 파일을 다른 호스트의 상대 파일 ssh과 비교하고 싶습니다 .diffssh


를 사용하여 원격 디렉토리를 마운트 SSHFS한 다음 로컬 인 것처럼 액세스 할 수 있습니다.
Barmar

답변:


57
ssh user@remote_host "cat remote_file.txt" | diff - local_file.txt

출처


1
파이프는 단지 cat원본 파일 인의 결과 만 다운로드하지 않습니까?
Stijn de Witt

1
파이프는 원격 ssh명령 의 결과 를 로컬 파일과 diff비교하기 위해 대기중인 명령으로 푸시합니다 stdin.
fduff

1
'원격 파일을 다운로드하지 않아도'요구 사항을 잘못 해석하고있을 수 있습니다. OP는 '원격 파일을 수동으로 다운로드하지 않고도'을 의미한다고 생각합니다. :) 편집 : 아, 당신은 OP입니다. :)
Stijn de Witt

@StijndeWitt, 예, 원격 파일을 먼저 scp하지
말고

18

시험:

diff local_file <(ssh user@server 'cat remote_file')

또는 사용 vimdiff:

vimdiff local_file scp://server//path/to/remote_file

diff local_file <(ssh user@server 'cat remote_file')비밀번호가없는 SSH에만 작동 합니까 ? 암호 프롬프트가 표시되지 않는 것 같습니다 ...
sdbbs

1
@sdbbs : 프로세스 대체가 백그라운드에서 실행되었으며 표준 출력이 명명 된 파이프 (또는 익명의 명명 된 파이프)에 기록되므로 암호 프롬프트가 표시되지 않습니다. 시도 cat <(ssh user@server 'cat remote_file')cat < <(ssh user@server 'cat remote_file')의 차이를 볼 수 있습니다.
cuonglm 2016 년

9

어쩌면 이것이 정확한 경우에는 도움이되지 않지만 종종 나는 단순히

sum -r

각 컴퓨터에서 체크섬을 수동으로 비교하십시오. 이를 통해 ssh 연결을 통해 파일에 도달 할 수없는 경우에도 파일을 비교할 수 있습니다. 물론 대답은 "동일하다"지만 종종 내 요구에 충분합니다. 또한 3 개 또는 4 개 이상의 시스템에서 단일 파일이 동일한 지 쉽게 확인할 수 있습니다.


2
큰 파일이나 느린 연결의 경우 이것이 매우 유용 할 것이라고 생각할 수 있습니다. 파일이 실제로 다를 때 전체 파일의 다운로드를 저장합니다. 나보다 나은 Bash 스크립터는 아마도이 대답을 파일과 다른 것으로 결정되었을 때 cat실제로 cat명령을 실행하기 위해 원격과 관련된 위의 대답과 결합 할 수 있습니다 .
Stijn de Witt

1
info coreutils 'sum invocation'특히 커맨드 링 은 "호환성을 위해 'sum'이 제공된다. 새로운 애플리케이션에서는 'cksum'프로그램 (다음 섹션 참조)이 바람직하다"고 말했다.
Teemu Leisti

1

터미널 세션에서보다 시각적 인 접근 방식을 선호하는 경우 자정 사령관은 원격 파일 시스템 옵션 (메뉴의 SFTP 링크 ... 옵션)과 시각적 파일 비교 옵션을 가지고 있습니다. 대부분의 Linux 시스템에는 기본적으로 설치되지 않지만 대부분의 기본 리포지토리에서 사용할 수 있습니다. 단계 :

  1. mc비교할 파일이 들어있는 폴더에서 자정 사령관 (명령 :)을 시작하십시오.
  2. 다른 쪽 (예 : 오른쪽 메뉴)에서 같은 폴더 ( sftp://<user>@<servername>/<path>) 에있는 다른 서버에 대한 sftp 링크를 만듭니다 .
  3. ins키를 사용하여 비교할 파일을 선택 / 강조합니다. ( tab왼쪽과 오른쪽 패널 사이에서 변경).
  4. 에서 명령 메뉴를 선택 비교 파일을

참고 : 자정 사령관 메뉴는 일반적으로 터미널 세션에서 마우스를 사용하여 액세스 할 수 있습니다. 작동하지 않는 F9메뉴에서도 메뉴가 나타납니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.