\"/
\"/ \"/    

Ještě jednou o ftp

Miroslav Bartošek, ÚVT MU
Ročník IV - číslo 1, září 1993
Citace: M. Bartošek. Ještě jednou o ftp. Zpravodaj ÚVT MU. ISSN 1212-0901, 1993, roč. IV, č. 1, s. 5-9.
Tematické zařazení: Počítačové sítě obecně, Programy, nástroje
 předchozí článek | následující článek 

O protokolu a programech ftp (File Transfer Protocol) se psalo ve Zpravodaji již vícekrát ([1], [2], [3]). Pravidelný čtenář a/nebo zběhlý uživatel rozlehlých počítačových sítí ví, že "ftp je základním prostředkem pro přenos souborů v sítích založených na protokolu TCP/IP", zejména že pomocí programu ftp dostane například jakýkoliv jemu dostupný soubor uložený kdekoliv v síti Internet na svůj osobní počítač (zapojený do této sítě), a naopak - soubor ze svého PC přenese na libovolný internetový počítač, na němž má právo zápisu. (Zkušený uživatel samozřejmě toto všechno nejen ví, ale také umí.)

Přesto však mají zejména ti méně zběhlí síťoví uživatelé (autor se k nim rovněž počítá) čas od času s ftp problémy. Jsou to problémy, které nejčastěji pramení z:

Právě těmto méně zběhlým uživatelům je určeno následující přehledově-populární ftp-povídání.

1  Podmínka pro použití ftp

Uživatel, který chce přenášet soubory pomocí ftp, potřebuje k této činnosti příslušná oprávnění: (a) registraci na každém počítači, odkud přenáší, včetně práva čtení pro příslušný soubor, (b) registraci s právem zápisu na každém počítači, kam soubory přenáší.1

Existuje ovšem metoda umožňující podmínku dvojí (v praxi však spíše mnohonásobné) registrace v některých případech obejít - tou je služba anonymního ftp (umožňuje přihlásit se na vzdálený počítač jako anonymní uživatel a získat tím právo čtení vyhrazené oblasti na disku, aniž by bylo nutné se na vzdáleném počítači registrovat - viz dále).

2  Základní příkazy ftp

Přestože po světě běhá mnoho různých implementací a rozšíření ftp, existuje něco jako de-facto standard příkazů, který je široce použitelný (prakticky ke každému "standardnímu příkazu" pak nabízí daná implementace řadu synonym a ještě některé speciální příkazy navíc). Kvůli obecnosti se omezíme jen na výběr příkazů z tohoto "standardu".

2.1  Navázání spojení

Pro navázání spojení musí být oba počítače zapojeny v síti a musí mít instalován program ftp. Program ftp na lokálním počítači bývá označován jako ftp-klient, zatímco na vzdáleném počítači hovoříme o ftp-serveru; ftp-klient naváže spojení se vzdáleným počítačem (ftp-serverem) o zadané internetové adrese příkazem

     ftp internetová_adresa

například:

     ftp varda.ics.muni.cz

Ftp-server zareaguje dvěma dotazy:

     Name (internetová_adresa:ID_uživatele) ?

je dotaz na identifikaci, pod kterou je uživatel registrován na vzdáleném počítači (ftp vám nabídne pro přihlášení tutéž identifikaci, pod kterou jste přihlášeni na lokálním počítači). Při navazování spojení s anonymním ftp se zadává identifikace anonymous (někdy lze i ftp).

     Password ?

je dotaz na heslo přihlašovaného uživatele. Pro anonymní ftp je zvykem zadat namísto hesla vaši poštovní elektronickou adresu (některá anonymní ftp však dotaz na heslo vůbec nevypisují, jiná naopak kontrolují, zda to, co zadáváte, může být skutečně elektronickou adresou).

Chcete-li změnit adresáta ftp-spojení (navázat spojení s jiným ftp-serverem, aniž byste předtím ukončili ftp), použijte příkaz:

     open internetová_adresa

který naváže nové spojení s ftp-serverem o dané adrese.2

2.2  Nápověda

Po úspěšném navázání spojení ohlásí ftp-klient svou připravenost k přijímání příkazů (ftp>). Repertoár jeho příkazů a detaily k jednotlivým příkazům můžete zjistit příkazem help nebo ?:

     help

vypíše seznam použitelných ftp-příkazů a

     help příkaz

vypíše nápovědu k zadanému příkazu.

2.3  Práce s adresáři

Jedním ze základních předpokladů úspěšné práce s ftp je umět pracovat s adresáři na vzdáleném počítači (a často pod jiným operačním systémem, než je systém na vašem lokálním počítači). K tomu slouží příkazy:

     pwd

který ukáže, jaký adresář vzdáleného počítače je adresářem pracovním (po navázání spojení je jako pracovní adresář nastaven home - domovský adresář uživatele),

     cd vzdálený_adresář

který změní pracovní adresář na vzdáleném počítači na vzdálený_adresář (ten je obvykle zadáván podle konvencí vzdáleného operačního systému; například unixový příkaz cd /pub odpovídá v MS-DOSu příkazu cd \pub),

     cdup

který změní pracovní adresář na nadřazený adresář dosavadního pracovního adresáře (u UNIXových a MS-DOSových ftp-serverů lze použít cd ..),

     lcd lokální_adresář

který změní pracovní adresář na lokálním počítači (často velmi užitečný, neboť soubory načítané ze vzdáleného počítače jsou obvykle ukládány na lokálním počítači do pracovního adresáře),

     dir [vzdálený_adresář] [lokální_soubor]

který vypíše seznam souborů ze vzdáleného_adresáře; tvar výpisu odpovídá konvencím vzdáleného operačního systému. Není-li zadán žádný adresář, vypíše se obsah vzdáleného pracovního adresáře. Jako druhý parametr příkazu lze uvést jméno souboru na lokálním počítači, do něhož bude výpis uložen (výhodné pro hledání v rozsáhlých adresářích). Není-li druhý parametr uveden, výpis je směrován na obrazovku lokálního počítače. Příklady: dir, dir ab* adresar.vyp.

2.4  Výpis souboru na obrazovku

Jedním z prvních příkazů, kterých se začátečník v práci s ftp domáhá, je příkaz pro výpis obsahu vzdáleného souboru na obrazovku lokálního počítače ("podívám se, zda to stojí za to vůbec přenášet"). Takovýto příkaz není do de-facto standardu ftp zahrnut (otázkou je také jeho efektivnost a vhodnost s ohledem na zatěžování sítě - zejména u velkých souborů přenášených na velké vzdálenosti).

Některé implementace ftp nicméně mohou takovýto příkaz nabízet; například ftp-klient v programovém balíku PC/TCP pro MS-DOS (od FTP Software Inc.) nabízí příkaz

     show vzdálený_soubor

který vypíše obsah vzdáleného_souboru na obrazovku lokálního počítače.

Obdobně unixový public-domain software NcFTP (viz dále) umí příkaz:

     page vzdálený_soubor

který vypíše obsah vzdáleného_souboru na lokální obrazovku a navíc (oproti výše uvedenému show) provádí i stránkování rozsáhlých souborů.

2.5  Přenos souboru

Vlastní přenosy souborů provádějí příkazy getput; před jejich použitím je však třeba si ujasnit, má-li být přenášen textový soubor nebo binární (přeložený program, obrázek apod.). V prvém případě dochází totiž při přechodu souboru mezi systémy s rozdílným kódováním znaků k automatické konverzi - tak, aby byl přenesený text vždy správně čitelný. U binárních souborů je ovšem takovýto zásah do obsahu souboru krajně nežádoucí.

     ascii

nastavuje (až do odvolání) textový režim přenosu,

     binary

nastavuje (až do odvolání) binární režim přenosu,

     get vzdálený_soubor [lokální_soubor]

přenese soubor uložený na vzdáleném počítači pod jménem vzdálený_soubor na lokální počítač pod jménem lokální_soubor; není-li druhý parametr zadán, je soubor uložen pod původním jménem (přizpůsobeným případně konvencím lokálního operačního systému). Soubory se přenášejí mezi pracovními adresáři - není-li ve jménech souborů udáno jinak. K předčasnému násilnému ukončení přenosu se používá přerušovací příkaz (může být rozdílný u různých implementací, obvykle je to současně stisknutá dvojice kláves <Ctrl><C>, někdy pomůže jen <Ctrl>,<Z>).

     put lokální_soubor [vzdál_soubor]

přenáší soubor z lokálního na vzdálený počítač; jinak platí analogicky totéž co pro get.

     mget množina_vzdálených_souborů

přenáší jediným příkazem více souborů (zadaných pomocí hvězdičkové konvence známé z MS-DOSu či UNIXu). Například: mget *.c přenese všechny soubory s příponou .c ze vzdáleného pracovního adresáře do lokálního pracovního adresáře pod stejnými jmény.

     mput množina_lokálních_souborů

přenáší množinu lokálních souborů na vzdálený počítač.

Ftp normálně vyžaduje potvrzení přenosu pro každý soubor z množiny zadané v příkazu mget/mput. Příkaz

     prompt

slouží k vypnutí/zapnutí tohoto individuálního potvrzování.

2.6  Ukončení ftp-spojení

     quit

ukončí ftp-spojení; synonyma mohou být exit, bye a další.

3  Anonymní ftp

Služba anonymního ftp umožňuje navázat ftp-spojení s internetovými uzly jako anonymní uživatel (login = anonymous) a zpřístupnit tak vyhrazené soubory i pro ty uživatele, kteří jinak nemají oprávnění na daném počítači pracovat. Existují stovky počítačů po celém světě, které nabízejí prostřednictvím této služby k volnému použití rozsáhlé archivy programů a informací. Pravidelně aktualizovaný seznam počítačů umožňujících anonymní ftp (a stručný přehled jejich obsahu) je dostupný např. pomocí anonymního ftp na ftp.uwp.edu v souboru /pub/ftp.list/ftp-list/sites nebo - což je vhodnější - na univerzitním ftp.muni.cz v souboru /pub/nets/info/listftp.txt (další stroje poskytující anonymní ftp na MU jsou adelard.dcs.muni.czmelilot.ped.muni.cz).

4  Archie

Hledání konkrétních souborů pomocí ftp může být - vzhledem k velkému počtu internetových uzlů nabízejících službu anonymního ftp - značně zdlouhavé. Efektivním řešením může být využít služeb tzv. archie serverů, které pravidelně monitorují obsah několika stovek archivů anonymních ftp a umí zpracovávat specializované dotazy na prohledávání tohoto obrovského informačního prostoru (reprezentujícího stovky GB informací).

Systém archie v současnosti představuje:

Služby archie jsou dostupné několika způsoby:

5  Některá doporučení

NcFTP

Na počítači varda.muni.cz je instalován public-domain ftp program NcFTP, který nabízí v řadě ohledů uživatelský komfort nedostupný ve standardně dodávaných systémech. Vyzkoušejte jej (příkazem ncftp dosažitelným i z některých dalších strojů MU) - budete příjemně překvapeni! Některá z jeho vylepšení:

ftpget, ftplist

Program ftpget slouží k dávkovému (neinteraktivnímu) přenosu souborů z anonymního ftp. Při jeho spuštění se zadávají následující parametry:

     ftpget -h adresa_počítače -d adresář -f vzdál_soubor[:lok_soubor]

Pomocí ftpget a unixového příkazu at (který slouží ke spuštění daného příkazu v udaném časovém okamžiku) lze s výhodou "naprogramovat" ftp-přenosy v nočních hodinách (obecná zásada je provádět rozsáhlé přenosy mimo pracovní dobu, tj. mimo 07-18 hod., a to jak lokálního, tak vzdáleného času!). Příkaz

     echo 'ftpget -h ftp.muni.cs -d pub/nets/info -f READ_ME!' | at 2300

provede přenos souboru READ_ME! z adresáře pub/nets/info z anonymního ftp na MU do lokálního pracovního adresáře uživatele (soubor bude uložen pod stejným jménem), přičemž přenos bude odstartován ve 23:00 lokálního času.

Namísto parametru -f soubor je možno použít parametr -m maska (např.: -m 'pc*') pro vícenásobný přenos (množiny souborů).

Obdobně jako ftpget se používá program ftplist - pro neinteraktivní přenos výpisů obsahů vzdálených adresářů. Program má následující parametry:

     ftplist -h adr_počítače -d vzdál_adresář [-r]

(parametr -r způsobí rekurzivní výpis všech podadresářů).

Přenosy dlouhých souborů

Při přenosu dlouhého souboru (stovky a tisíce KB) může dojít k samovolnému předčasnému ukončení přenosu, takže se soubor nepřenese celý. Na vině mohou být některé nepříliš spolehlivé implementace FTP (např. v SCO Unixu). V takovýchto případech doporučujeme použít jinou instalaci ftp (např. výše uvedený NcFTP) nebo navázat ftp spojení z jiného osvědčeného počítače (spolehlivými se jeví např. počítače SUN se systémem SunOS).

A na závěr - základní pravidlo etiky uživatelů ftp

(volně dle [6]):

Nezapomínejme, že Internet je tady k tomu, aby lidé mohli pracovat - provádět výzkum, vývoj, cokoliv... Každá větší zátěž snižuje výkonnost sítě jako celku, každý přenos navíc zmenšuje schopnost uživatelů v místě navštíveného anonymního ftp plnit jejich úkoly. Berme proto vážně doporučení navazovat ftp-spojení mimo obvyklou pracovní dobu navštěvovaného místa; možný efekt velkého přenosu bude méně destruktivní ve dvě hodiny v noci než ve dvě odpoledne (nezapomeňme přitom uvažovat v "jejich", nikoliv v "našem" čase - jestliže my jsme již po večeři, v Kalifornii je teprve dopoledne...).

Literatura

[1] P. Mejzlík. Přenosy souborů v sítích. Zpravodaj II/1, str 3-5.
... zpět do textu
[2] P. Mejzlík. Jak vytáhnout informace z počítačových sítí. Zpravodaj II/3, str 3-5.
... zpět do textu
[3] B. Moučka. Anonymní ftp v ÚVT. Zpravodaj III/2, str 9.
... zpět do textu
[4] P. Pištěk. Spolupráce počítače Hitachi se sítí. Zpravodaj III/5, str 9-10.
... zpět do textu
[5] Special Internet Connections. Zpravodaj III/5, Příloha.
... zpět do textu
[6] B. P. Kehoe. Zen and the Art of the Internet.
... zpět do textu
setting
1 Počítače pracující pod operačním systémem MS-DOS neposkytují víceuživatelskou ochranu, takže registrace u nich automaticky odpadá.
... zpět do textu
2 Použití ftp-serveru na sálových počítačích kompatibilních s IBM pod operačním systémem VM má jisté zvláštnosti, plynoucí z "netypické" (ne-unixové) struktury souborového systému a způsobu ochrany uživatelských souborů (minidisků) - podrobně je tato situace vysvětlena ve [4].
... zpět do textu
Zpět na začátek
ÚVT MU, poslední změna 14.11.2011