netrw je jednoduchý (ale mocný) nástroj pro přenos dat přes inetrnet. Jeho hlavní účel je zjednodušit a urychlit přenos souborů na stroje bez FTP serveru. Lze ho též použít pro posslání dat jinému uživateli. Je to něco jako jednosměrný netcat (nc) s některými pěknými vlastnostmi pro přenos dat. Netrw může počítat a kontrolovat otisk (MD5, SHA-1 a některé další) všech dat, která byla přenesena, může také vypisovat informace o průběhu a průměrné rychlosti přenosu. Na konci vytiskne souhrnne informace o celém přenosu.
netrw můžete najít také na freshmeat.net
Typické použití netrw
Předpokládejme, že chcete odeslat soubor data.zip ze stroje host.domain.org na stroj server.somewhere.net. Existuje několik způsobů, jak toho dosáhnout. První a druhý příklad je stejný pro systémy typu Unix i pro Windows "OS". V případě Windows je lepší a bezpečnější používat volby -i a -o spíš než přesměrování vstupu a výstupu. Třetí příklad je použitelný pouze na unixových systémech, protože Windows nemají ssh (to se netýká nástrojů jako je cygwin).
-
jednoduchý a nejčastější případ:
- na server.somewhere.net spusťte
$ netread 1234 >data.zip
nebo$ netread -o data.zip 1234
- na host.domain.org spusťte
$ netwrite server.somewhere.net 1234 <data.zip
nebo$ netwrite -i data.zip server.somewhere.net 1234
- na server.somewhere.net spusťte
-
pokud je server chráněn firewallem (a host není) nebo
pokud chcete, aby bylo spojení iniciováno tím, kdo přijímá data, použijte
následující příkazy:
- na host.domain.org spusťte
$ netwrite -f 1234 <data.zip
nebo$ netwrite -i data.zip -f 1234
- na server.somewhere.net spusťte
$ netread -f server.somewhere.net 1234 >data.zip
nebo$ netread -o data.zip -f server.somewhere.net 1234
- na host.domain.org spusťte
-
pokud vystupujete v roli toho, kdo příjímá data, i toho, kdo vysílá data,
můžete spustit následující příkazy na pouze jednom z obou strojů:
- na host.domain.org spusťte
$ ssh server.somewhere.net 'netread 1234 >data.zip' &>/dev/null & $ netwrite server.somewhere.net 1234 <data.zip
- NEBO na server.somewhere.net spusťte
$ netread 1234 >data.zip 2>/dev/null & $ ssh host.domain.org 'netwrite server.somewhere.net 1234 <data.zip'
- na host.domain.org spusťte
V případě, že potřebujete odeslat více než jeden soubor, musíte použít trošku složitější příkazy:
- Na unixových systémech můžete využít programu tar a rour:
$ netread 1234 | tar xf - $ tar cf - <some_files> | netwrite server.somewhere.net 1234
- Windows: nejdříve musíte všechny soubory skomprimovat do jednoho souboru (např. pomocí WinZip) a potom odeslat komprimovaný soubor na druhý stroj (jak bylo popsáno výše) a tam tento soubor rozbalit.