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:
ftp
implementujících protokol ftpPrá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í.
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).
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".
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
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.
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
.
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ů.
Vlastní přenosy souborů provádějí příkazy get
a put
;
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>
a <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í.
quit |
ukončí ftp-spojení; synonyma mohou být exit
, bye
a další.
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.cz
a melilot.ped.muni.cz
).
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:
prog
pro prohledávání databáze ftp a whatis
pro databázi SwD).Služby archie jsou dostupné několika způsoby:
telnet
na počítač se službou
archie (například telnet archie.mcgill.ca
, login: archie
naváže spojení s vůbec prvním systémem archie vyvinutým a dosud
rozvíjeným na McGill University v Kanadě; seznam dalších, zejména
geograficky nám bližších, systémů archie lze nalézt
např. v [5])Subject:
uvedete příkaz help
)
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í:
page
pro prohlížení vzdálených souborů,
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ř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).
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...).
[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 |
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 |