Istnieją dwa serwery, do których mogę uzyskać dostęp za pomocą 2 różnych połączeń VPN. Udało mi się mieć obie VPN działające w tym samym czasie na moim komputerze (trochę zasad routingu).
Chcę zrobić scp <remote1>:some/file <remote2>:destination/folder
z mojego terminala laptopa. Ale gdy spróbuję, scp
polecenie wywołane na zdalnym 1 nie może znaleźć zdalnego 2, ponieważ nie znajdują się w tej samej sieci. Czy można zmusić komendę do przejścia przez mój laptop jako router?scp
Jeśli spróbuję z Nautilus (połącz się z serwerem, obydwoma serwerami, a następnie kopiuj-wklej) to działa, ale chciałbym to zrobić z terminala.
Odpowiedzi:
Nowsze wersje scp mają opcję -3
źródło
Jeśli potrzebujesz większej elastyczności niż
scp -3
zwykłe,ssh
fajki są fajne.Jest to równoważne przekierowaniu strumienia na maszynie lokalnej:
Następnie możesz dodać więcej przekierowań strumienia w dowolnym momencie, np. Połączyć kilka komputerów pośrednich lub zapisać lokalną kopię przesyłanego pliku podczas jego trasowania.
źródło
pv
zainstalowana i zastąpisz nią pierwszącat
.Rozwijając odpowiedź @ Anko, możesz użyć
tar
dla wielu plików:Kompresja jest całkowicie opcjonalna - dane mogą nie być zbyt kompresowalne lub wystarczająco duże, aby uzasadnić narzut. Jeśli twoja wersja
tar
nie obsługuje-z
przełącznika, przepuść odpowiedniogzip -c
igzip -dc
.PS: Strzeż się wersji
tar
, które nie usuwają wiodących ukośników podczas ekstrakcji (tzn. Zapisuj bezwzględne ścieżki, jeśli są dostarczone).Edycja:
-e none
nie jest potrzebne w potokach, ponieważ pseudo-terminal nie jest przydzielony.źródło
ssh
ma-C
flagę umożliwiającą kompresję strumienia. Zgodnie zeman
stroną, używa tego samego algorytmu, jakgzip
gdyby. Strona podręcznika wyjaśnia również, kiedy należy z niej korzystać: „Kompresja jest pożądana w liniach modemowych i innych wolnych połączeniach, ale spowalnia tylko szybkie sieci”.-C
tutaj polega na tym, że lokalny komputer musiałby rozpakować i ponownie skompresować dane. Polecenietar
wykonania kompresji oznacza, że skompresowane dane są przesyłane prosto przez rurę bez żadnego przetwarzania.