Vyhledávání na webu

Jak přenášet soubory mezi dvěma počítači pomocí příkazů nc a pv


Ahoj linuxoví čtenáři, přináším vám další skvělý článek z naší série Linux Tips and Tricks, tentokrát budeme používat dva méně známé linuxové nástroje, o kterých byste měli vědět.

Tento článek vysvětlí, jak přenášet soubory mezi dvěma počítači se systémem Linux pomocí nc (síťový nástroj) a pv (prohlížeč potrubí) příkazy, než se přesuneme dále, dovolte mi vysvětlit, co jsou tyto dva příkazy.

nc je zkratka pro Netcat a často se uvádí, že „švýcarský armádní nůž“ je síťový nástroj používaný pro ladění sítě a vyšetřování a také se používá pro vytváření síťových připojení pomocí TCP nebo UDP, skenování portů, přenos souborů a další. Je vytvořen jako spolehlivý back-end a používá se speciálně v programech a skriptech, protože dokáže generovat téměř jakýkoli druh síťového připojení a má řadu vestavěných funkcí.

pv ve zkratce Pipe Viewer je terminálový nástroj pro sledování průběhu dat odesílaných potrubím, umožňuje uživateli vidět průběh dat s ukazatelem průběhu, zobrazuje uplynulý čas, procento dokončení, aktuální propustnost rychlost, celkový počet přenesených dat a odhadovaný čas dokončení procesu.

Jak sledovat průběh dat pomocí příkazu pv (Pipe Viewer).

Pojďme nyní dále a uvidíme, jak můžeme zkombinovat oba příkazy pro přenos souborů mezi dvěma počítači se systémem Linux, pro účely tohoto článku budeme používat dva počítače se systémem Linux takto:

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

Poznámka: Důrazně doporučuji nepoužívat netcat k odesílání a přijímání dat přes veřejnou síť, protože nepoužívá žádné přihlášení ani ověřování , jediným požadavkem je IP klienta a číslo naslouchajícího portu a data odesílaná přes síť nejsou zabezpečena, proto je vždy vyhrazeno pro pokročilé uživatele Linuxu a preferováno pro použití v chráněné lokální síti.

V situacích, kdy je bezpečnost dat důležitější, pak vždy použijte rsync přes SSH nebo scp přes SSH.

Nyní začněme s nějakým skutečně snadným příkladem příkazů nc a pv, ale předtím je třeba oba nástroje nainstalovat do systému, pokud je nenainstalujete pomocí příslušného správce distribučních balíčků. nástroj podle doporučení:

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]

Jak přenášet soubory mezi dvěma počítači se systémem Linux?

Předpokládejme, že chcete odeslat jeden velký soubor s názvem CentOS-7-x86_64-DVD-1503.iso z počítače A do B přes síť , nejrychlejší způsob, jak toho dosáhnout pomocí nc síťového nástroje používaného k odesílání souborů přes TCP síť, pv ke sledování průběhu dat a tar nástroj pro kompresi dat pro zvýšení přenosové rychlosti.

Na stroji Linux A

Nejprve se přihlaste do stroje „A“ s IP adresou 192.168.0.4 a spusťte následující příkaz.

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

Dovolte mi vysvětlit možnosti použité ve výše uvedeném příkazu:

  1. tar -zcf=tar je nástroj pro archivaci pásek, který se používá ke kompresi/dekomprimaci archivních souborů a argumentů -c vytvoří nový archivní soubor .tar, -f zadejte typ archivního souboru a -z filtrujte archiv přes gzip.
  2. CentOS-7-x86_64-DVD-1503.iso=Zadejte název souboru k odeslání přes síť, může to být soubor nebo cesta k adresáři.
  3. pv=Prohlížeč kanálů pro sledování průběhu dat.
  4. nc -l -p 5555 -q 5=Síťový nástroj používaný pro odesílání a přijímání dat přes tcp a argumenty -l používané k naslouchání příchozímu připojení, - p 555 určuje zdrojový port, který se má použít, a -q 5 počká počet sekund a pak se ukončí.

Na Linuxovém stroji B

Nyní se přihlaste do stroje „B“ s IP adresou 192.168.0.7 a spusťte následující příkaz.

nc 192.168.1.4 5555 | pv | tar -zxf -

To je vše, soubor se přenese do počítače B a vy budete moci sledovat, jak rychle operace probíhala. Existuje spousta dalších skvělých použití příkazů nc (zatím nejsou popsány, ale brzy o nich napíšeme) a pv (podrobný článek jsme již probrali zde) , pokud znáte nějaký příklad, dejte nám prosím vědět prostřednictvím komentářů!