Tiedostojen siirtäminen kahden tietokoneen välillä nc- ja pv-komennoilla


Hei muut Linux-lukijat, tuon teille vielä yhden upean artikkelin Linux Tips and Tricks -sarjastamme. Tällä kertaa käytämme kahta vähemmän tunnettua Linux-apuohjelmaa, joista sinun tulee tietää.

Tässä artikkelissa kerrotaan, kuinka siirrät tiedostoja kahden Linux-tietokoneen välillä nc- (verkkoapuohjelma) ja pv- (pipe viewer) avulla.) komentoja, ennen kuin siirryt pidemmälle, haluan selittää, mitä nämä kaksi komentoa ovat.

nc on lyhenne sanoista Netcat ja usein viitataan nimellä "Swiss Army knife" on verkkotyökalu, jota käytetään verkon virheenkorjaukseen ja tutkimiseen, ja sitä käytetään myös verkkoyhteyksien luomiseen TCP:tä tai UDP:tä käyttäen, porttien skannaukseen, tiedostojen siirtoon ja paljon muuta. Se on luotu luotettavaksi taustajärjestelmäksi ja sitä käytetään erityisesti ohjelmissa ja komentosarjoissa, koska se voi luoda melkein minkä tahansa verkkoyhteyden ja siinä on useita sisäänrakennettuja ominaisuuksia.

pv lyhyesti sanottuna Pipe Viewer on terminaalipohjainen työkalu liukuhihnan kautta lähetettävien tietojen edistymisen seurantaan. Sen avulla käyttäjä voi nähdä tietojen etenemisen edistymispalkin avulla, näyttää kuluneen ajan, valmistumisprosentin, nykyisen suorituskyvyn. nopeus, siirrettyjen tietojen kokonaismäärä ja arvioitu aika prosessin suorittamiseen.

Kuinka seurata tietojen edistymistä pv (Pipe Viewer) -komennolla

Siirrytään nyt pidemmälle ja katsotaan, kuinka voimme yhdistää molemmat komennot tiedostojen siirtämiseksi kahden Linux-tietokoneen välillä. Tämän artikkelin tarkoitusta varten käytämme kahta Linux-konetta seuraavasti:

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

Huomaa: Suosittelen vahvasti, että et käytä netcatia tietojen lähettämiseen ja vastaanottamiseen julkisen verkon kautta, koska se ei käytä kirjautumisia tai todennusta. , ainoa vaatimus on asiakkaan IP-osoite ja kuunteluportin numero, ja verkon kautta lähetettävää dataa ei ole suojattu, joten se on aina varattu edistyneille Linux-käyttäjille ja mieluiten käytettäväksi suojatussa lähiverkossa.

Tilanteissa, joissa tietojen turvallisuus on tärkeämpää, käytä aina rsyncia SSH:n yli tai scp:tä SSH:n yli.

Aloitetaan nyt muutamalla todella helpolla esimerkillä nc- ja pv-komennoista, mutta ennen kuin teet niin, molemmat apuohjelmat on asennettava järjestelmään, ellei asenna ne käyttämällä vastaavaa jakelupakettien hallintaa. työkalu ehdotuksen mukaisesti:

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]

Kuinka siirtää tiedostoja kahden Linux-koneen välillä?

Oletetaan, että haluat lähettää yhden suuren tiedoston nimeltä CentOS-7-x86_64-DVD-1503.iso tietokoneelta A verkkoon B. , nopein tapa saavuttaa tämä käyttämällä nc-verkkoapuohjelmaa, jota käytetään tiedostojen lähettämiseen TCP-verkon kautta, pv-apuohjelmalla tietojen edistymisen seuraamiseen ja tar apuohjelma tietojen pakkaamiseen siirtonopeuden parantamiseksi.

Linux-koneella A

Kirjaudu ensin sisään koneeseen A IP-osoitteella 192.168.0.4 ja suorita seuraava komento.

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

Selitän yllä olevassa komennossa käytetyt vaihtoehdot:

  1. tar -zcf=tar on nauha-arkistoapuohjelma, jota käytetään arkistotiedostojen ja argumenttien pakkaamiseen/purkaamiseen. -c luo uuden .tar-arkistotiedoston, -f . määritä arkistotiedoston tyyppi ja -z suodata arkisto gzipin kautta.
  2. CentOS-7-x86_64-DVD-1503.iso=Määritä verkon kautta lähetettävän tiedoston nimi. Se voi olla tiedosto tai polku hakemistoon.
  3. pv=Pipe Viewer tietojen edistymisen seuraamiseen.
  4. nc -l -p 5555 -q 5=Verkkotyökalu, jota käytetään tiedon lähettämiseen ja vastaanottamiseen tcp:n kautta sekä argumentteja -l käytetään saapuvan yhteyden kuuntelemiseen, - p 555 määrittää käytettävän lähdeportin ja -q 5 odottaa muutaman sekunnin ja lopettaa sitten.

Linux-koneella B

Kirjaudu nyt sisään koneeseen B IP-osoitteella 192.168.0.7 ja suorita seuraava komento.

nc 192.168.1.4 5555 | pv | tar -zxf -

Siinä kaikki, tiedosto siirretään tietokoneelle B, ja voit seurata, kuinka nopeasti toiminto sujui. nc-komentojen (jota ei ole vielä käsitelty, mutta kirjoitan siitä pian) ja pv-komentojen (jota käsittelimme jo yksityiskohtaisen artikkelin täällä) on olemassa monia muita hienoja käyttötapoja. , jos tiedät esimerkin, kerro siitä meille kommenttien kautta!