Il modo più semplice per inviare file in rete


14

Qual è il modo più semplice e versatile per inviare file in rete ad altri computer? Con questo intendo i computer che altre persone stanno usando al momento. Non penso che SSH funzioni se il computer ha una sessione attiva aperta.

Finora sto usando netcat, che funziona bene. Ma ci sono altri semplici modi per farlo? Un problema che ho netcatè che il destinatario deve conoscere la fine del file e deve trovare un nome per lo stream.


1
Se si desidera continuare a utilizzare netcatè possibile inviare un tararchivio ed estrarlo al volo. Ciò risolverà il problema del nome del file ed è più flessibile. Ma alla fine immagino scpo rsyncsia l'opzione più semplice.
Marco,

Come funzionerebbe l'invio di un catrame e l'estrazione al volo?
TomTom,

1
Suppongo che sarebbe netcat hostname | tar -xnella directory in cui si desidera inserire i file.
Dmitry Grigoryev,

Risposte:


21

Stai complicando inutilmente la tua vita. Usa scp.

Per trasferire un file myfile dalla directory locale nella directory / foo / bar sulla macchina otherhost come utente utente , ecco la sintassi: scp myfile user@otherhost:/foo/bar.

EDIT: Vale la pena notare che il trasferimento tramite scp / SSH è crittografato mentre il trasferimento tramite netcat o HTTP no. Quindi, se si trasferiscono file sensibili, utilizzare sempre il primo.


Non ho bisogno di una password per scpl'account utente?
TomTom,

Sì, naturalmente. È necessaria una password per l'account user@otherhost.
dr01,

2
No, non hai bisogno di una password se usi l'autenticazione con chiave pubblica
YoMismo,

9
Ok, se vuoi essere pignolo, diciamo che devi autenticarti come user@otherhost.
dr01,

1
Inoltre, come semplificazione, se il tuo nome utente è lo stesso su entrambe le macchine, puoi escluderlo. Tuttavia, ti verrà comunque richiesta una password.
Sildoreth,

10

Puoi anche provare

python -m SimpleHTTPServer 8180

Servirà i file nella directory in cui è stato eseguito su HTTP, è possibile accedervi tramite browser.


Oppure usa darkhttpd quando non sei soddisfatto delle prestazioni.
TNW,

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

Vedi qui per maggiori informazioni su questa opzione: askubuntu.com/a/95607/42073
Erel Segal-Halevi,

Grazie! Perfetto per ottenere alcuni file su un sistema di test di Windows
QwertyChouskie il

9

Se sei soddisfatto netcat, puoi aggirare il problema del nome file invadendo tar. Ciò semplifica anche l'invio di più file contemporaneamente e l'invio di directory.

Sul lato mittente utilizzare:

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

E dal lato ricevente:

nc -l <port> | tar x

Un'altra soluzione sarebbe quella di utilizzare rsynco scp.


Di solito aggiungo -q2 anche all'invio netcat, per far chiudere la connessione alla fine del flusso.
Simon Richter,

Non riesco a capire perché questo dovrebbe essere richiesto. Si spegne automaticamente senza l' -qopzione.
Marco,

Dipende dall'implementazione di netcat che usi. Esistono implementazioni che chiudono solo una direzione del flusso TCP alla chiusura di stdin, poiché l'altra direzione potrebbe essere ancora attiva.
Simon Richter,

tar | ssh tarfunziona anche molto bene nei casi in cui scp cade e rsync non è disponibile.
Hobbs

2

Ovviamente sshfunziona se è aperta un'altra sessione. Puoi solo fare

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

Oppure, per copiare nella directory locale:

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

È possibile viceversa, ad esempio ssh lubuntu '>newfile.txt' <file.txt?
heemayl

1
@heemayl sì, per cat in un file remoto, lo faresti cat local.file | ssh user@host "cat > remote.file", o ssh user@host "cat > remote.file" < local.file.
terdon

0

Se entrambi gli host si trovano nella stessa LAN, puoi usare i guai .

È estremamente semplice da usare.

Se mittente e destinatario sono OVUNQUE in Internet e devi trasferire GRANDI FILE, devi installare F * EX: http://fex.belwue.de/index.html


1
scp di base è anche estremamente semplice, e uno strumento che è effettivamente distribuito, attendibile e utilizzato da milioni di persone, a differenza di questi strumenti fatti in casa che sembrano essere promossi dal loro autore.
Jack Wasey,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.