Wyszukiwanie w witrynie

Jak przesyłać pliki między dwoma komputerami za pomocą poleceń nc i pv


Cześć, drodzy czytelnicy Linuksa, przedstawiam wam kolejny świetny artykuł z naszej serii Linux Tips and Tricks. Tym razem będziemy używać dwóch mniej znanych narzędzi Linux, o których powinniście wiedzieć.

W tym artykule wyjaśniono, jak przesyłać pliki między dwoma komputerami z systemem Linux za pomocą nc (narzędzia sieciowego) i pv (przeglądarki potoków), zanim przejdziemy dalej, pozwólcie mi wyjaśnić, czym są te dwa polecenia.

nc oznacza Netcat i często jest wskazywane jako „szwajcarski scyzoryk” to narzędzie sieciowe używane do debugowania i badania sieci, a także wykorzystywane do tworzenia połączeń sieciowych przy użyciu protokołu TCP lub UDP, skanowania portów, przesyłania plików i nie tylko. Został stworzony jako niezawodny back-end i specjalnie używany w programach i skryptach, ponieważ może generować prawie każdy rodzaj połączenia sieciowego i ma wiele wbudowanych funkcji.

pv w skrócie Pipe Viewer to oparte na terminalu narzędzie do monitorowania postępu danych przesyłanych potokiem, pozwala użytkownikowi zobaczyć postęp danych za pomocą paska postępu, pokazuje upływ czasu, procent ukończenia, aktualną przepustowość szybkość transmisji, całkowitą liczbę przesłanych danych i szacowany czas zakończenia procesu.

Jak monitorować postęp danych za pomocą polecenia pv (Przeglądarka rur).

Przejdźmy teraz dalej i zobaczmy, jak możemy połączyć oba polecenia, aby przesyłać pliki między dwoma komputerami z systemem Linux. Na potrzeby tego artykułu będziemy używać dwóch komputerów z systemem Linux w następujący sposób:

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

Uwaga: zdecydowanie odradzam używanie netcat do wysyłania i odbierania danych przez sieć publiczną, ponieważ nie wymaga to żadnych loginów ani uwierzytelnień jedynym wymaganiem jest adres IP klienta i numer portu nasłuchiwania, a przesyłanie danych przez sieć nie jest zabezpieczone, dlatego jest zawsze zarezerwowane dla zaawansowanych użytkowników Linuksa i preferowane jest korzystanie z chronionej sieci lokalnej.

W sytuacjach, w których bezpieczeństwo danych jest ważniejsze, zawsze używaj rsync przez SSH lub scp przez SSH.

Zacznijmy teraz od naprawdę prostego przykładu poleceń nc i pv, ale zanim to zrobimy, oba narzędzia muszą być zainstalowane w systemie, a jeśli nie, należy je zainstalować przy użyciu odpowiedniego menedżera pakietów dystrybucyjnych narzędzie zgodnie z sugestią:

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 przesyłać pliki między dwoma maszynami z systemem Linux?

Załóżmy, że chcesz wysłać jeden duży plik o nazwie CentOS-7-x86_64-DVD-1503.iso z komputera A do B przez sieć , najszybszy sposób na osiągnięcie tego za pomocą nc narzędzia sieciowego używanego do wysyłania plików przez sieć TCP, pv do monitorowania postępu danych i tar narzędzie do kompresji danych w celu poprawy szybkości przesyłania.

Na komputerze z Linuksem A

Najpierw zaloguj się do komputera „A” z adresem IP 192.168.0.4 i uruchom następujące polecenie.

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

Pozwólcie, że wyjaśnię opcje użyte w powyższym poleceniu:

  1. tar -zcf=tar to narzędzie do archiwizacji taśm używane do kompresji/dekompresowania plików archiwalnych i argumentów -c tworzy nowy plik archiwum .tar, -f określ typ pliku archiwum i -z przefiltruj archiwum przez gzip.
  2. CentOS-7-x86_64-DVD-1503.iso=Określ nazwę pliku do wysłania przez sieć. Może to być plik lub ścieżka do katalogu.
  3. pv=przeglądarka Pipe do monitorowania postępu danych.
  4. nc -l -p 5555 -q 5=Narzędzie sieciowe używane do wysyłania i odbierania danych przez TCP i argumentów -l używane do nasłuchiwania połączenia przychodzącego, - p 555 określa port źródłowy, który ma być używany, a -q 5 czeka przez określoną liczbę sekund i następnie wychodzi.

Na komputerze z Linuksem B

Teraz zaloguj się do komputera „B” z adresem IP 192.168.0.7 i uruchom następujące polecenie.

nc 192.168.1.4 5555 | pv | tar -zxf -

To wszystko, plik zostanie przesłany do komputera B i będziesz mógł zobaczyć, jak szybko przebiegała operacja. Istnieje mnóstwo innych świetnych zastosowań poleceń nc (jeszcze nie omówionych, ale napiszę o tym wkrótce) i pv (omówiliśmy już o tym szczegółowy artykuł tutaj) , jeśli znasz jakiś przykład, daj nam znać w komentarzach!