Tramp / Dired는 scp externaly 대신 ssh를 통해 파일을 인라인으로 전송합니다


12

ssh를 통해 tramp를 사용하여 원격 파일에 액세스하고 있습니다. 텍스트 파일의 경우 이것은 잘 작동하지만 더 큰 원격 파일을 로컬 컴퓨터에 복사 할 때마다 tramp는 느린 인라인 방법을 사용합니다 (gzip으로 파일 인코딩). 이것은 scp와 같은 외부 방법을 사용하는 것보다 훨씬 느립니다. 대용량 파일을 전송할 때 emacs가 scp를 사용하게하려면 어떻게합니까?

관련 정보:

  • ~ / .ssh / config 파일을 사용하여 원격 시스템에 액세스합니다. 해당 머신의 별명은 다음에서 hehi09입니다. 비밀번호가없는 액세스

  • 전송할 때 메시지 버퍼에 있는 메시지 :

    Copying /ssh:hehi09:/home/christian/big_file.dat to /home/christian/big_file.dat'...
    Tramp: Inserting `/ssh:hehi09:/home/christian/big_file.dat'...
    Tramp: Encoding remote file `/ssh:hehi09:/home/christian/big_file.dat' with `(gzip <%s | base64)'...
    
  • 값 :

    • tramp-copy-size-limit의 값은 10240입니다 (테스트 된 파일 크기보다 훨씬 작음).

    • tramp-default-method의 값은 "scp"입니다

  • $ scp hehi09:/home/christian/big_file.dat ~/ 커맨드 라인에서 예상대로 작동하고 emacs에서의 전송보다 훨씬 빠릅니다.

emacs가 scp를 사용하여 대용량 파일을 복사하지 않는 이유는 무엇입니까? 어떤 도움이라도 대단히 감사합니다!

답변:


17

"ssh를 통해 tramp를 사용하고 있습니다"라고 말하면 다음과 같은 파일을 연다 고 가정합니다 /ssh:host:/path/to/file. 이것은 항상 ssh 방법을 사용해야합니다. scp 방법을 사용하려면을 사용해야합니다 /scp:host:/path/to/file. 짧은 파일에는 자동 ssh를 사용하고 큰 파일에는 scp를 사용합니다. 에 설정된 기본 방법을 신뢰 tramp-default-method하면 더 짧은 방법을 사용할 수 있습니다 /host:/path/to/file.


/ ssh 또는 / scp와 상관없이 파일을 복사 할 때 항상 ssh와 scp를 모두 사용하는 것이 좋을 것입니다. 또는 / ssh를 사용하여 큰 바이너리를 복사 할 때는 경고 메시지가 표시됩니다. 답을보기 전에 emacs가 tramp를 통해 큰 파일을 복사 할 준비가되지 않았다고 생각했습니다. (내가 / ssh 만 사용했기 때문에)
xwl

2
이 경우 scp기본 방법을 만드 십시오. 그럼에도 불구하고 Tramp는을 통해 작은 파일을 복사하고을 통해 ssh큰 파일을 복사 합니다 scp. 를 통해 한도를 사용자 정의 할 수 있습니다 tramp-copy-size-limit.
Michael Albinus

5
Emacs 26부터는 원격 파일 이름에 메소드가 필수입니다. 항상 /scp:host:/path/to/file또는 이라고 말해야합니다 /ssh:host:/path/to/file.
Michael Albinus

0

~/.emacs파일 로 설정했기 때문입니다 . 그럼에도 불구하고 Emacs는 SFTP 또는 FTP 클라이언트가 아닌 텍스트 편집기이지만 파일 전송에 너무 느리게하는 방법 으로이 base64인코딩을 사용합니다 ssh.


미안하지만, 그건 맞지 않습니다. 허용되는 답변에 따르면 기본 선택 항목을 신뢰하거나 모든 연결에 대해 명확한 결정을 내릴 수 있습니다. 당신이 사용 ssh하는 경우 base64변환이 수행되는 것이 정확하고 지연되는 파일의 경우 속도가 느립니다. 그러나 사용 scp하는 경우에는 해당되지 않습니다. 이맥스는 "텍스트"를 다루지 않는 명령을 잘 실행할 수 있습니다. 마지막으로, 자신이 좋아하는 OS가 텍스트 편집기라는 사실을 Emacs 사용자에게 알리지 마십시오.)
Chris

이미 설정 scp하고 base64전환이 계속 발생했습니다. SFTP 연결을위한 주요 응용 프로그램 일 가능성이 높으면 발생하지 않으면 감사 할 것입니다. 기본 텍스트 편집기 및 파일 관리자로 사용됩니다.
Ronald71

당신은 옳습니다. 어떻게 변환 scp하지 않고 방법 을 통해 그것을 수행 base64하여 더 빠르게 돌 렸습니다.
Ronald71

이상하다. 인코딩을 scp사용하지 않기 위해 특별한 설정이 필요하지 않았습니다 base64. 앞으로 여기에 빠질 사람이 있다면 문제가 무엇인지 신속하게 공유 할 수 있습니까?
크리스

@Chris는 이미 그렇게했습니다. 주요 문제 는를 TRAMP dired통해 연결이 열린 ssh다음 scp명령 을 실행 중이 어서 base64변환 이 필요하다는 것 입니다. 방법으로 TRAMP dired연결과 복사 명령을 모두 실행할 때 변환을 scp무시하고 base64더 빨랐습니다.
Ronald71
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.