Kako prenijeti datoteke između dva računara koristeći nc i pv komande


Zdravo kolege čitatelji Linuxa, donosim vam još jedan sjajan članak iz naše serije Linux Tips and Tricks, ovaj put ćemo koristiti dva manje poznata Linux uslužna programa o kojima biste trebali znati.

Ovaj članak će objasniti kako prenosite datoteke između dva Linux računara koristeći nc (mrežni uslužni program) i pv (preglednik cijevi) pre nego što krenem dalje, objasniću šta su ove dve komande.

nc je skraćenica za Netcat i često se ističe kao "Swiss Army knife" je mrežni alat koji se koristi za uklanjanje grešaka i istraživanje mreže, a također se koristi za kreiranje mrežnih veza koristeći TCP ili UDP, skeniranje portova, prijenos datoteka i još mnogo toga. Napravljen je da bude pouzdan back-end i posebno se koristi u programima i skriptama, budući da može generirati gotovo svaku vrstu mrežne veze i ima niz ugrađenih funkcija.

pv ukratko Pipe Viewer je alat baziran na terminalu za praćenje napretka podataka koji se šalju kroz cjevovod, omogućava korisniku da vidi napredak podataka sa trakom napretka, pokazuje proteklo vrijeme, postotak završen, trenutni protok stopu, ukupan prenos podataka i procijenjeno vrijeme za završetak procesa.

Kako pratiti napredak podataka pomoću naredbe pv (Pipe Viewer).

Hajdemo sada dalje i vidjeti kako možemo kombinirati obje naredbe za prijenos datoteka između dva Linux računala, u svrhu ovog članka koristit ćemo dvije Linux mašine na sljedeći način:

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

Napomena: Preporučujem vam da ne koristite netcat za slanje i primanje podataka putem javne mreže, jer ne koristi nikakve prijave ili autentifikaciju , jedini uslov je IP klijenta i broj porta za slušanje, a podaci koji se šalju preko mreže nisu osigurani, stoga su uvijek rezervirani za napredne Linux korisnike i preferirani za korištenje na zaštićenoj lokalnoj mreži.

U situacijama u kojima je sigurnost podataka važnija, uvijek koristite rsync preko SSH-a ili scp preko SSH-a.

Sada počnimo s nekim stvarno jednostavnim primjerom naredbi nc i pv, ali prije nego to uradimo oba uslužna programa moraju biti instalirana na sistemu, ako ne i instalirati ih pomoću vašeg odgovarajućeg upravitelja distribucijskih paketa alat prema preporuci:

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]

Kako prenijeti datoteke između dvije Linux mašine?

Pretpostavimo da želite poslati jednu veliku datoteku pod nazivom CentOS-7-x86_64-DVD-1503.iso sa računara A na B preko mreže , najbrži način da se to postigne korištenjem nc mrežnog uslužnog programa koji se koristi za slanje datoteka preko TCP mreže, pv za praćenje napretka podataka i tar uslužni program za komprimiranje podataka radi poboljšanja brzine prijenosa.

Na Linux mašini A

Prvo se prijavite na mašinu „A“ sa IP adresom 192.168.0.4 i pokrenite sljedeću naredbu.

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

Dozvolite mi da objasnim opcije koje se koriste u gornjoj naredbi:

  1. tar -zcf=tar je uslužni program za arhiviranje trake koji se koristi za komprimiranje/dekomprimiranje arhivskih datoteka i argumenti -c kreira novi .tar arhivski fajl, -f navedite tip arhivske datoteke i -z filtrirajte arhivu kroz gzip.
  2. CentOS-7-x86_64-DVD-1503.iso=Odredite naziv datoteke za slanje preko mreže, može biti datoteka ili putanja do direktorija.
  3. pv=Pipe Viewer za praćenje napredovanja podataka.
  4. nc -l -p 5555 -q 5=Mrežni alat koji se koristi za slanje i primanje podataka preko tcp-a i argumenata -l koji se koriste za slušanje dolazne veze, - p 555 specificira izvorni port koji će se koristiti i -q 5 čeka broj sekundi i zatim izlazi.

Na Linux mašini B

Sada se prijavite na mašinu „B“ sa IP adresom 192.168.0.7 i pokrenite sljedeću naredbu.

nc 192.168.1.4 5555 | pv | tar -zxf -

To je to, datoteka se prenosi na računar B, a vi ćete moći gledati koliko se brzo odvijala operacija. Postoji još mnogo drugih sjajnih upotreba naredbi nc (još nije pokriveno, ali ćemo uskoro pisati o tome) i pv (ovdje smo već pisali detaljan članak o ovome) , ako znate neki primjer, javite nam putem komentara!