Korzystam z tramp przez ssh, aby uzyskać dostęp do zdalnych plików. W przypadku plików tekstowych działa to naprawdę dobrze, ale ilekroć chcę skopiować większe pliki zdalne na moją maszynę lokalną, tramp używa wolnej metody inline (kodowania pliku za pomocą gzip). Jest to o wiele wolniejsze niż przy użyciu zewnętrznej metody, takiej jak na przykład scp. Jak zmusić emacsa do korzystania z scp podczas przesyłania dużych plików?
Istotna informacja:
Używam pliku ~ / .ssh / config, aby uzyskać dostęp do zdalnego komputera. Alias dla tego komputera to hehi09 poniżej. Dostęp jest bez hasła
Wiadomości w buforze wiadomości podczas przesyłania:
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)'...
Wartości:
wartość parametru tramp-copy-size-limit wynosi 10240 (znacznie mniej niż rozmiar testowanego pliku)
Domyślną wartością metody tramp-default jest „scp”
$ scp hehi09:/home/christian/big_file.dat ~/
działa zgodnie z oczekiwaniami z wiersza poleceń i jest znacznie szybszy niż przesyłanie w emacsie
Jakieś pomysły, dlaczego emacs nie używa scp do kopiowania dużych plików? Każda pomoc jest mile widziana!
scp
domyślną metodę. Nawet wtedy Tramp kopiuje małe pliki przezssh
, a duże pliki przezscp
. Możesz dostosować limit za pomocątramp-copy-size-limit
./scp:host:/path/to/file
lub/ssh:host:/path/to/file
.Ponieważ musisz ustawić go w
~/.emacs
pliku. Mimo to Emacs jest edytorem tekstowym, a nie klientem SFTP lub FTP, używa tegobase64
kodowania wssh
metodzie, która powoduje, że jest on zbyt wolny do przesyłania plików.źródło
ssh
masz rację, żebase64
konwersja ma miejsce, co jest powolne w przypadku dużych plików. Jednak jeśli go użyjeszscp
, tak nie jest. Emacs jest w stanie dobrze wykonywać polecenia, które nie zajmują się „tekstem”. Na koniec, nie dziel się z użytkownikami Emacsa, że ich ulubionym systemem operacyjnym jest edytor tekstu;)scp
ibase64
konwersja nadal występowała. Byłoby to znaczące, gdyby tak się nie stało, gdy prawdopodobnie byłaby to główna aplikacja do połączeń SFTP. Chociaż jest używany jako główny edytor tekstu i menedżer plików.scp
metodą, bezbase64
konwersji, obracając to szybciej.scp
aby nie używaćbase64
kodowania. Czy mógłbyś szybko podzielić się tym, co było w twoim przypadku dla kogoś, kto wpadnie tutaj w przyszłości?TRAMP
dired
połączenie było otwartessh
, a następnie uruchomionoscp
polecenie, które uniemożliwiłobase64
konwersję. Po uruchomieniu zarówno metodyTRAMP
dired
połączenia, jak i kopiowania zarównoscp
metodą, zignorowałbase64
konwersję i zrobił to szybciej.