Kako prenesti datoteke med dvema računalnikoma z ukazi nc in pv


Pozdravljeni, bralci Linuxa, prinašam vam še en čudovit članek iz naših manj znanih pripomočkov za Linux, ki bi ga morali vedeti.

Ta članek bo razložil, kako prenesete datoteke med dvema računalnikoma Linux z uporabo ukazov nc (omrežni pripomoček) in pv (pregledovalnik cevi), preden nadaljujem, naj pojasnim, kakšna sta ta dva ukaza.

nc pomeni Netcat in pogosto poudarjajo, da je "Swiss Army knife" omrežno orodje, ki se uporablja za odpravljanje napak v omrežju in preiskave, uporablja pa se tudi za ustvarjanje omrežnih povezav s pomočjo TCP ali UDP, skeniranje vrat, prenos datotek in še več. Ustvarjen je kot zanesljiv back-end in posebej uporabljen v programih in skriptih, saj lahko ustvari skoraj vse vrste omrežnih povezav in ima številne vgrajene funkcije.

pv na kratko Pipe Viewer je terminalsko orodje za spremljanje napredka pošiljanja podatkov po cevovodu, omogoča uporabniku, da vidi napredek podatkov z vrstico napredovanja, prikazuje pretečeni čas, dokončan odstotek, trenutno pretočno hitrost, skupno preneseno količino podatkov in Predviden čas za dokončanje postopka.

Pojdimo zdaj naprej in poglejmo, kako lahko združimo oba ukaza za prenos datotek med dvema računalnikoma Linux, za namen tega članka bomo uporabili dva stroja Linux, kot sledi:

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

V primerih, ko je varnost podatkov pomembnejša, vedno uporabite scp prek SSH.

Zdaj pa začnimo z nekaj resničnega preprostega primera ukazov nc in pv, toda pred tem morata biti obe pripomočki nameščeni v sistemu, če jih ne namestite z ustreznim orodjem za upravljanje distribucijskih paketov, kot je predlagano:

# 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 prenesti datoteke med dvema računalnikoma Linux?

Predpostavimo, da želite poslati eno veliko datoteko z imenom CentOS-7-x86_64-DVD-1503.iso iz računalnika A do B prek omrežja, kar je najhitrejši način za dosego tega z uporabo omrežnega pripomočka, ki se uporablja za pošiljanje datotek prek omrežja TCP, pv za spremljanje napredka podatkov in pripomoček tar za stiskanje podatkov za izboljšanje hitrosti prenosa.

Najprej se prijavite v stroj »A« z naslovom IP 192.168.0.4 in zaženite naslednji ukaz.

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

Naj pojasnim možnosti, uporabljene v zgornjem ukazu:

  1. tar -zcf = tar je pripomoček za arhiviranje traku, ki se uporablja za stiskanje/stiskanje arhivskih datotek in argumentov -c ustvari novo arhivsko datoteko .tar, -f določite vrsto arhivske datoteke in -z filtrirajte arhiv s pomočjo gzip.
  2. CentOS-7-x86_64-DVD-1503.iso = Določite ime datoteke, ki jo želite poslati prek omrežja, lahko pa je datoteka ali pot do imenika.
  3. pv = Pipe Viewer za spremljanje napredka podatkov.
  4. nc -l -p 5555 -q 5 = Orodje za mreženje, ki se uporablja za pošiljanje in prejemanje podatkov prek tcp in argumentov -l, ki se uporablja za poslušanje dohodne povezave, -p 555 določa izvorna vrata, ki jih je treba uporabiti, in -q 5 čaka na število sekund in nato zaprete.

Zdaj se prijavite v stroj 'B' z naslovom IP 192.168.0.7 in zaženite naslednji ukaz.

# nc 192.168.1.4 5555 | pv | tar -zxf -

To je to, datoteka se prenese v računalnik B in videli boste, kako hitro je potekala operacija. Obstaja še veliko drugih velikih ukazov nc (še niso zajeti, vendar bomo o tem kmalu pisali) in pv (o tem smo že pokrili podroben članek), če poznate kakšen primer, nam to sporočite s komentarji!