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áhnout – Zdarma 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
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.