Najprostszy sposób wysyłania plików przez sieć


14

Jaki jest najprostszy i najbardziej wszechstronny sposób przesyłania plików przez sieć do innych komputerów? Rozumiem przez to komputery, z których obecnie korzystają inni ludzie. Nie sądzę, że SSH działa, jeśli komputer ma aktywną sesję otwartą.

Do tej pory używam netcat, co działa dobrze. Czy są jednak inne proste sposoby na zrobienie tego? Jednym z moich problemów netcatjest to, że odbiorca musi znać zakończenie pliku i musi wymyślić nazwę strumienia.


1
Jeśli chcesz nadal używać netcat, możesz wysłać tararchiwum i rozpakować je w locie. To rozwiąże problem z nazwą pliku i będzie bardziej elastyczny. Ale w końcu myślę, scpczy rsyncjest łatwiejsza opcja.
Marco

Jak działałoby wysyłanie smoły i rozpakowywanie jej w locie?
TomTom

1
Przypuszczam, że byłby netcat hostname | tar -xw katalogu, w którym chcesz umieścić pliki.
Dmitrij Grigoriew

Odpowiedzi:


21

Niepotrzebnie komplikujesz sobie życie. Zastosowanie scp.

Aby przesłać plik myFile z lokalnego katalogu do katalogu / foo / bar na maszynie otherhost jako użytkownika użytkownika , oto składnia: scp myfile user@otherhost:/foo/bar.

EDYCJA: Warto zauważyć, że transfer przez scp / SSH jest szyfrowany, podczas gdy transfer przez netcat lub HTTP nie jest. Jeśli więc przenosisz poufne pliki, zawsze używaj tego pierwszego.


Czy nie potrzebuję hasła do scpkonta użytkownika?
TomTom

Tak oczywiście. Potrzebujesz hasła do konta user@otherhost.
dr01

2
Nie, nie potrzebujesz hasła, jeśli korzystasz z uwierzytelniania za pomocą klucza publicznego
YoMismo

9
Ok, jeśli chcesz być wybredny, powiedzmy, że musisz się uwierzytelnić jako user@otherhost.
dr01

1
Dla uproszczenia, jeśli twoja nazwa użytkownika jest taka sama na obu komputerach, możesz wykluczyć nazwę użytkownika. Mimo to nadal poprosi o podanie hasła.
Sildoreth,

10

Możesz także spróbować

python -m SimpleHTTPServer 8180

Będzie obsługiwał pliki w katalogu, w którym został wykonany przez HTTP, można uzyskać do niego dostęp za pośrednictwem przeglądarki.


Lub użyj darkhttpd, gdy jesteś niezadowolony z wydajności.
TNW

1
Dla Python 3: python3 -m http.server <port>.
dotancohen

Zobacz tutaj, aby uzyskać więcej informacji na temat tej opcji: askubuntu.com/a/95607/42073
Erel Segal-Halevi

Dzięki! Idealny do przeniesienia niektórych plików do systemu testowego Windows
QwertyChouskie

9

Jeśli jesteś zadowolony netcat, możesz obejść problem z nazwą pliku, wtrącając się tar. Upraszcza to również wysyłanie wielu plików jednocześnie, a także wysyłanie katalogów.

Po stronie wysyłającej użyj:

tar cf - <files> | nc <host> <port>

A po stronie odbierającej:

nc -l <port> | tar x

Innym rozwiązaniem byłoby użycie rsynclub scp.


Zazwyczaj dodam również -q2 do wysyłania netcat, aby zamknęło połączenie na końcu strumienia.
Simon Richter

Nie rozumiem, dlaczego to powinno być wymagane. Wyłącza się automatycznie bez -qopcji.
Marco

To zależy od używanej implementacji netcat. Istnieją implementacje, które zamykają tylko jeden kierunek strumienia TCP, gdy stdin zamyka się, ponieważ drugi kierunek może być nadal aktywny.
Simon Richter

tar | ssh tardziała również bardzo ładnie w przypadkach, gdy scp spada i rsync jest niedostępny.
hobbs

2

Oczywiście sshdziała, jeśli otwarta jest inna sesja. Możesz po prostu zrobić

ssh user@host cat /path/to/file.tar  > localfile.tar

Lub, aby skopiować do lokalnego katalogu:

scp user@host:/path/to/file.tar .

Czy jest to możliwe np. Na odwrót ssh lubuntu '>newfile.txt' <file.txt?
heemayl

1
@ heemayl tak, aby przejść do pliku zdalnego, zrobiłbyś cat local.file | ssh user@host "cat > remote.file", lub ssh user@host "cat > remote.file" < local.file.
terdon

0

Jeśli oba hosty są w tej samej sieci LAN, możesz użyć Woos .

Jest wyjątkowo prosty w użyciu.

Jeśli nadawca i odbiorca są KAŻDY w Internecie i musisz przesyłać DUŻE PLIKI, zainstaluj F * EX: http://fex.belwue.de/index.html


1
podstawowy scp jest również niezwykle prosty, a narzędzie jest faktycznie rozpowszechniane, zaufane i używane przez miliony ludzi, w przeciwieństwie do tych domowych narzędzi, które wydają się być promowane przez ich autora.
Jack Wasey,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.