Kaip perkelti failus tarp dviejų kompiuterių naudojant nc ir pv komandas


Sveiki, kolegos Linux skaitytojai, atnešiu jums dar vieną puikų straipsnį iš mūsų Linux patarimų ir gudrybių serijos. Šį kartą naudosime dvi mažiau žinomas Linux programas, apie kurias turėtumėte žinoti.

Šiame straipsnyje bus paaiškinta, kaip perkelti failus tarp dviejų „Linux“ kompiuterių naudojant nc (tinklo paslaugų programa) ir pv (vamzdžių peržiūros programą).) komandos, prieš judant toliau leiskite paaiškinti, kas yra šios dvi komandos.

nc reiškia Netcat ir dažnai nurodoma kaip „Swiss Army knife“ yra tinklo įrankis, naudojamas tinklo derinimui ir tyrimui, taip pat jis naudojamas tinklo ryšiams sukurti naudojant TCP arba UDP, prievadų nuskaitymui, failų perkėlimui ir kt. Jis sukurtas kaip patikimas užpakalinis ir specialiai naudojamas programose ir scenarijuose, nes gali sukurti beveik bet kokį tinklo ryšį ir turi daugybę integruotų funkcijų.

pv trumpai „Pipe Viewer“ yra terminalu pagrįstas įrankis, skirtas stebėti duomenų siuntimo konvejeriu eigą. Jis leidžia vartotojui matyti duomenų eigą naudojant eigos juostą, rodo prabėgusį laiką, užbaigimo procentą, esamą pralaidumą. greitis, bendras perduotų duomenų kiekis ir numatomas proceso užbaigimo laikas.

Kaip stebėti duomenų eigą naudojant pv (Pipe Viewer) komandą

Dabar judėkime toliau ir pažiūrėkime, kaip galime sujungti abi komandas, kad perkeltume failus tarp dviejų „Linux“ kompiuterių. Šiame straipsnyje mes naudosime du „Linux“ įrenginius taip:

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

Pastaba: primygtinai rekomenduoju nenaudoti netcat duomenims siųsti ir gauti viešuoju tinklu, nes jame nenaudojami jokie prisijungimai ar autentifikavimas , vienintelis reikalavimas yra kliento IP ir klausymosi prievado numeris, o duomenų siuntimas tinkle nėra apsaugotas, todėl jis visada skirtas pažengusiems Linux vartotojams ir pageidaujamas naudoti apsaugotame vietiniame tinkle.

Tais atvejais, kai duomenų saugumas yra svarbesnis, visada naudokite rsync per SSH arba scp per SSH.

Dabar pradėkime nuo keleto tikrai lengvų komandų nc ir pv pavyzdžio, tačiau prieš tai darydami abi komunalinės paslaugos turi būti įdiegtos sistemoje, jei ne įdiegiate jas naudodami atitinkamą paskirstymo paketų tvarkyklę. įrankis, kaip siūloma:

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]

Kaip perkelti failus tarp dviejų „Linux“ mašinų?

Tarkime, kad norite nusiųsti vieną didelį failą pavadinimu CentOS-7-x86_64-DVD-1503.iso iš kompiuterio A į B per tinklą , greičiausias būdas tai pasiekti naudojant nc tinklo paslaugų programą, naudojamą failams siųsti per TCP tinklą, pv duomenų eigai stebėti ir tar įrankis suspausti duomenis, kad pagerintų perdavimo greitį.

„Linux“ įrenginyje A

Pirmiausia prisijunkite prie įrenginio „A“ su IP adresu 192.168.0.4 ir paleiskite šią komandą.

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

Leiskite paaiškinti parinktis, naudojamas aukščiau pateiktoje komandoje:

  1. tar -zcf=tar yra juostos archyvo programa, naudojama archyvo failams ir argumentams suspausti/išspausti. -c sukuria naują .tar archyvo failą, -f nurodykite archyvo failo tipą ir -z filtruokite archyvą per gzip.
  2. CentOS-7-x86_64-DVD-1503.iso=Nurodykite failo pavadinimą, kurį norite siųsti per tinklą. Tai gali būti failas arba kelias į katalogą.
  3. pv=„Pipe Viewer“, skirta duomenų eigai stebėti.
  4. nc -l -p 5555 -q 5=Tinklo įrankis, naudojamas duomenims siųsti ir gauti per tcp ir argumentus -l, naudojamus klausytis įeinančio ryšio, - p 555 nurodo naudotiną šaltinio prievadą, o -q 5 laukia sekundžių ir tada baigia.

„Linux“ įrenginyje B

Dabar prisijunkite prie įrenginio „B“ su IP adresu 192.168.0.7 ir paleiskite šią komandą.

nc 192.168.1.4 5555 | pv | tar -zxf -

Viskas, failas perkeliamas į kompiuterį B ir galėsite stebėti, kaip greitai buvo atlikta operacija. Yra daugybė kitų puikių komandų nc (dar neaprašyta, bet netrukus apie tai parašysime) ir pv (čia jau aprašėme išsamų straipsnį) komandų. , jei žinote kokį nors pavyzdį, praneškite mums komentaruose!