Hvordan overføre filer mellom to datamaskiner ved hjelp av nc- og pv-kommandoer


Hei andre Linux-lesere, jeg gir dere nok en flott artikkel fra vår Linux Tips and Tricks-serie, denne gangen skal vi bruke to mindre kjente Linux-verktøy som du bør vite om.

Denne artikkelen vil forklare hvordan du overfører filer mellom to Linux-datamaskiner ved hjelp av nc (nettverksverktøy) og pv (pipe viewer) kommandoer, før jeg går videre, la meg forklare hva disse to kommandoene er.

nc står for Netcat og peker ofte ut som "Swiss Army knife" er et nettverksverktøy som brukes til nettverksfeilsøking og etterforskning, og det brukes også for å opprette nettverkstilkoblinger ved hjelp av TCP eller UDP, portskanning, filoverføring og mer. Den er laget for å være en pålitelig back-end og brukes spesielt i programmer og skript, siden den kan generere nesten alle typer nettverkstilkoblinger og har en rekke innebygde funksjoner.

pv i korte trekk Pipe Viewer er et terminalbasert verktøy for å overvåke fremdriften av data som sendes gjennom en pipeline, den lar en bruker se fremdriften til data med fremdriftslinje, viser medgått tid, prosentandel fullført, gjeldende gjennomstrømning rate, totalt overførte data og estimert tid for å fullføre prosessen.

Hvordan overvåke fremdriften av data ved hjelp av pv (Pipe Viewer) kommando

La oss nå gå videre og se hvordan vi kan kombinere begge kommandoene for å overføre filer mellom to Linux-datamaskiner, for formålet med denne artikkelen vil vi bruke to Linux-maskiner som følger:

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

Merk: Jeg anbefaler på det sterkeste at du ikke bruker netcat til å sende og motta data over kjønnsnettverket, siden det ikke bruker noen pålogginger eller autentisering , det eneste kravet er klientens IP og lytteportnummer, og dataene som sendes over nettverket er ikke sikret, derfor er det alltid reservert for avanserte Linux-brukere og foretrukket å bruke på beskyttet lokalt nettverk.

Situasjoner der datasikkerhet er viktigere, bruk alltid rsync over SSH eller scp over SSH.

La oss nå starte med et veldig enkelt eksempel på kommandoer nc og pv, men før du gjør det må begge verktøyene installeres på systemet, hvis ikke installere dem ved å bruke din respektive distribusjonspakkebehandling verktøy som foreslått:

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]

Hvordan overføre filer mellom to Linux-maskiner?

La oss anta at du vil sende én stor fil kalt CentOS-7-x86_64-DVD-1503.iso fra datamaskin A til B over nettverket , den raskeste måten å oppnå dette ved å bruke nc et nettverksverktøy som brukes til å sende filer over TCP-nettverk, pv for å overvåke fremdriften til data og tar verktøy for å komprimere data for å forbedre overføringshastigheten.

På Linux Machine A

Logg først inn på maskinen 'A' med IP-adressen 192.168.0.4 og kjør følgende kommando.

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

La meg forklare alternativene som brukes i kommandoen ovenfor:

  1. tar -zcf=tar er et båndarkivverktøy som brukes til å komprimere/dekomprimere arkivfiler og argumenter -c oppretter en ny .tar-arkivfil, -f spesifiser type arkivfil og -z filtrer arkiv gjennom gzip.
  2. CentOS-7-x86_64-DVD-1503.iso=Spesifiser filnavnet som skal sendes over nettverket, det kan være fil eller bane til en katalog.
  3. pv=Pipe Viewer for å overvåke fremdriften til data.
  4. nc -l -p 5555 -q 5=Nettverksverktøy som brukes for å sende og motta data over tcp og argumentene -l brukes til å lytte etter en innkommende tilkobling, - p 555 spesifiserer kildeporten som skal brukes og -q 5 venter antall sekunder og avslutter deretter.

På Linux Machine B

Logg nå på maskin 'B' med IP-adressen 192.168.0.7 og kjør følgende kommando.

nc 192.168.1.4 5555 | pv | tar -zxf -

Det er det, filen blir overført til datamaskinen B, og du vil kunne se hvor raskt operasjonen utførte. Det er tonnevis av annen flott bruk av nc (ikke dekket ennå, men vil skrive om det snart) og pv (vi har allerede dekket en detaljert artikkel om dette her) , hvis du kjenner noen eksempler, vennligst gi oss beskjed via kommentarer!