Ricerca nel sito web

Come trasferire file tra due computer utilizzando i comandi nc e pv


Ciao amici lettori di Linux, vi porto ancora un altro fantastico articolo dalla nostra serie Linux Tips and Tricks, questa volta utilizzeremo due utilità Linux meno conosciute che dovreste conoscere.

Questo articolo spiegherà come trasferire file tra due computer Linux utilizzando nc (utilità di rete) e pv (pipe viewer), prima di proseguire lasciatemi spiegare quali sono questi due comandi.

nc sta per Netcat e spesso viene sottolineato come "coltellino svizzero" è uno strumento di rete utilizzato per il debugging e l'indagine della rete e viene utilizzato anche per creare connessioni di rete utilizzando TCP o UDP, scansione delle porte, trasferimento di file e altro. È stato creato per essere un back-end affidabile e utilizzato specialmente in programmi e script, poiché può generare quasi ogni tipo di connessione di rete e ha una serie di funzionalità integrate.

pv in breve Pipe Viewer è uno strumento basato su terminale per monitorare l'avanzamento dei dati inviati attraverso una pipeline, consente all'utente di vedere l'avanzamento dei dati con la barra di avanzamento, mostra il tempo trascorso, la percentuale completata, il throughput attuale velocità, dati totali trasferiti e tempo stimato per completare il processo.

Come monitorare l'avanzamento dei dati utilizzando il comando pv (Pipe Viewer).

Andiamo ora oltre e vediamo come possiamo combinare entrambi i comandi per trasferire file tra due computer Linux, ai fini di questo articolo utilizzeremo due macchine Linux come segue:

Machine A with IP : 192.168.0.4
Machine B with IP : 192.168.0.7

Nota: consiglio vivamente di non utilizzare netcat per inviare e ricevere dati sulla rete pubblica, poiché non utilizza alcun accesso o autenticazione , l'unico requisito è l'IP del client e il numero della porta di ascolto e l'invio dei dati sulla rete non è protetto, quindi è sempre riservato agli utenti Linux avanzati e si preferisce utilizzarlo su una rete locale protetta.

Nelle situazioni in cui la sicurezza dei dati è più importante, utilizzare sempre rsync su SSH o scp su SSH.

Ora iniziamo con qualche semplice esempio di comandi nc e pv, ma prima di farlo entrambe le utility devono essere installate sul sistema, altrimenti installatele utilizzando il rispettivo gestore di pacchetti di distribuzione strumento come suggerito:

yum install netcat pv        [On RedHat based systems]
dnf install netcat pv        [On Fedora 22+ versions]
apt-get install netcat pv    [On Debian and its derivatives]

Come trasferire file tra due macchine Linux?

Supponiamo che tu voglia inviare un file di grandi dimensioni chiamato CentOS-7-x86_64-DVD-1503.iso dal computer A a B tramite la rete , il modo più rapido per raggiungere questo obiettivo utilizzando nc un'utilità di rete utilizzata per inviare file sulla rete TCP, pv per monitorare l'avanzamento dei dati e tar utilità per comprimere i dati per migliorare la velocità di trasferimento.

Sulla macchina Linux A

Per prima cosa accedi alla macchina "A" con l'indirizzo IP 192.168.0.4 ed esegui il seguente comando.

tar -zcf - CentOS-7-x86_64-DVD-1503.iso | pv | nc -l -p 5555 -q 5

Lasciami spiegare le opzioni utilizzate nel comando precedente:

  1. tar -zcf=tar è un'utilità di archiviazione su nastro utilizzata per comprimere/decomprimere file di archivio e argomenti. -c crea un nuovo file di archivio .tar, -f specifica il tipo di file di archivio e -z filtra l'archivio tramite gzip.
  2. CentOS-7-x86_64-DVD-1503.iso=Specifica il nome del file da inviare in rete, può essere un file o il percorso di una directory.
  3. pv=Pipe Viewer per monitorare l'avanzamento dei dati.
  4. nc -l -p 5555 -q 5=Strumento di rete utilizzato per inviare e ricevere dati su TCP e argomenti -l utilizzato per ascoltare una connessione in entrata, - p 555 specifica la porta di origine da utilizzare e -q 5 attende il numero di secondi e poi esce.

Sulla macchina Linux B

Ora accedi alla macchina "B" con l'indirizzo IP 192.168.0.7 ed esegui il seguente comando.

nc 192.168.1.4 5555 | pv | tar -zxf -

Questo è tutto, il file viene trasferito sul computer B e potrai vedere quanto velocemente è stata eseguita l'operazione. Ci sono tantissimi altri ottimi usi dei comandi nc (non ancora trattati, ma ne parleremo presto) e pv (ne abbiamo già trattato un articolo dettagliato qui) , se conosci qualche esempio, faccelo sapere tramite i commenti!