GNU/Linux >> Znalost Linux >  >> Linux

Jak rychle přenášet velké soubory přes síť v Linuxu a Unixu

Dnes jsem musel přeinstalovat svůj server Ubuntu, který často používám k testování různých aplikací. Můj server Ubuntu má více než 200 GB dat a nechci o ně přijít. Mohu tato data přenést přes scp nebo nastavit NFS, FTP pro kopírování souborů, ale jsem si docela jistý, že přenos tak velkých souborů by zabral hodiny. Při hledání alternativní metody jsem narazil na následující metodu. Pomocí netcat můžeme rychle přenášet velké soubory mezi dvěma systémy po síti , tar , a pv příkazy v libovolném operačním systému GNU/Linux a Unixu. Na rozdíl od jiných metod mi to přijde velmi rychlé a rychlé. Pro ty, kteří nevědí, Netcat je jednoduchý unixový nástroj, který čte a zapisuje data přes síťová připojení pomocí protokolu TCP nebo UDP. tar je archivační nástroj příkazového řádku a pv , znamená prohlížeč potrubí, se používá ke sledování průběhu dat. Nyní mi dovolte, abych vám ukázal, jak rychle přenášet velké soubory mezi dvěma systémy Linux. Není to tak těžké, jak si myslíte. Čtěte dál.

StáhnoutZdarma e-kniha:„6 užitečných nástrojů příkazového řádku systému Linux pro správce systému“

Rychlý přenos velkých souborů přes síť mezi dvěma systémy v GNU/Linux

Ujistěte se, že máte na svých systémech nainstalované nástroje "netcat" a "pv". Pokud ještě nejsou nainstalovány, můžete je nainstalovat podle obrázku níže. Balíček "tar" je ve výchozím nastavení k dispozici na většině systémů Linux, takže jej nemusíte instalovat.

Na Arch Linuxu a jeho derivátech:

$ sudo pacman -S netcat pv

Na RHEL, CentOS, Fedora:

$ sudo yum install epel-release
$ sudo yum install nc pv

Nebo,

$ sudo dnf install nc pv

V systémech Debian, Ubuntu, Linux Mint:

$ sudo apt-get install netcat pv

Nyní se podívejme, jak rychle zkopírovat velké soubory mezi dvěma systémy.

Chcete-li tak učinit, spusťte následující příkaz jako root uživatele v přijímacím uzlu (cílový systém):

# netcat -l -p 7000 | pv | tar x

V odesílajícím uzlu (zdrojový systém), spusťte tento příkaz jako root uživatel:

# tar cf - * | pv | netcat 192.168.1.105 7000

Zde 192.168.1.105 je můj cílový systém. tar cf - * zkopíruje vše v aktuálním pracovním adresáři do cílového systému a soubory budou extrahovány na druhý konec.

Poznámka: V systémech RHEL, CentOS použijte "nc" místo "netcat", jak je uvedeno níže. A musíte přidat port "7000" do iptables / firewall-cmd v cílovém systému.

Po přidání portu do cílového systému můžete přenést větší soubory, jak je uvedeno níže.

V cílovém systému:

# nc -l -p 7000 | pv | tar x

Na zdrojovém systému:

# tar cf - * | pv | nc 192.168.1.105 7000

Můžete také určit konkrétní soubor, jak je uvedeno níže.

# tar cf - /home/sk/test.file | pv | netcat 192.168.1.105 7000

Mějte prosím na paměti, že oba systémy by měly mít nainstalovaný netcat . Teď si dej šálek kávy. Uvidíte, že soubory budou zkopírovány velmi rychle než tradiční metody jako scp.

Na obou stranách také neuvidíte žádné známky dokončení přenosu souboru. Tyto příkazy poběží, dokud je ručně nezastavíte. Velikost souborů v obou systémech musíte ručně zkontrolovat pomocí "du -h " příkaz. Pokud je velikost souboru v cílovém systému stejná jako ve zdrojovém systému, můžete předpokládat, že proces přenosu souboru je dokončen, a ukončit příkaz stisknutím CTRL+C .

Rychlý přenos velkých souborů mezi dvěma systémy v Unixu

V operačních systémech Unix netcat se nazývá nc. Takže pro kopírování velkých souborů mezi systémy přes síť by příkaz byl:

V cílovém systému:

Na zdrojovém systému:

# tar -cf - * | pv | nc 192.168.1.105 7000

Opět tyto příkazy by měly být spouštěny jako root uživatel. A jak zdrojové, tak cílové systémy by měly mít nainstalované netcat a pv. Přenos velkých souborů přes LAN pomocí netcat a tar vám skutečně ušetří spoustu času.

Odmítnutí odpovědnosti: Mějte prosím na paměti, že tato metoda nemá žádné zabezpečení . Protože, jak vidíte ve výše uvedených příkladech, neexistuje žádná autentizace na žádné straně. Vše, co potřebujete znát, je IP adresa cílového systému. Přenos souborů pomocí netcat se doporučuje pouze v chráněných sítích . Pokud jste paranoidní ohledně zabezpečení, důrazně vám doporučuji použít scp příkaz.

Pokud je pro vás zabezpečení tak důležité, můžete použít Rsync pro bezpečný přenos souborů.

$ rsync -ravz /path/to/source/files/ destination-ip:/path/on/destiny

Děkujeme:Ppnman

A je to. Znáte nějaký jiný způsob, jak rychle zkopírovat velké soubory? Sdílejte to prosím v sekci komentářů níže.


Linux
  1. Jak nakonfigurovat server SAMBA a přenášet soubory mezi Linuxem a Windows

  2. Jak archivovat a komprimovat soubory na Linuxu

  3. Linux – standardní a/nebo společné adresáře na operačních systémech Unix/linux?

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

  2. Jak přenášet soubory mezi servery v Linuxu pomocí SCP a FTP

  3. Jak kopírovat soubory v Linuxu a Unixu? 10 cp Příklady příkazů

  1. Jak najít velké soubory linux pomocí příkazů find a du

  2. Jak používat Netcat k přenosu souborů v systému Linux

  3. Jak přenášet soubory v Linuxu pomocí SCP a Rsync