FTP kliendi kasutamine

Allikas: Kuutõrvaja
Redaktsioon seisuga 8. august 2006, kell 10:32 kasutajalt Jj (arutelu | kaastöö)

FTP

FTP Olemus
Ühenduse loomine ja lõpetamine
Kohaliku ja kauge masina failisüsteemides õiendamine
Failide kopeerimine
Andmevahetuse tüübid
Passiivne ja aktiivne andmevahetus
Serveri kannatuse katkemine
Sisselogimise automatiseerimine
Makrod
Failinimedega manipuleerivad käsud: nmap ntrans case r-sunique
Piiks
Andmevahetuse kulgemise jälgimine ja FTP seansi olek
Poolelijäänud kopeerimise jätkamine
Automaagiline pakkimine serveris
Anonüümne FTP
FTP olemus

FTP (File Transfer Protocol) annab võimaluse võrku (sh lokaalvõrk, internet) ühendatud arvutite vahel faile kopeerida. Võrgus olevad arvutid võivad olla erinevate operatsioonisüsteemidega, kasutada erinevaid failisüsteeme ja kooditabeleid. Faili kopeerimise juures osalevad kaks poolt:

klient - reeglina algatab, lõpetab ja juhib FTP seanssi server - toimib teenindajana

Lisaks failide kopeerimisele saab: lasta FTP serveril faile pakkida kasutada makrosid tihtiesinevate FTP käsujadade sisestamiseks manipuleerida serveri failisüsteemis Ühenduse loomine ja lõpetamine

Vaatame konkreetsete näidete varal, kuidas klient ja server saavad faile vahetada.

Serveriga ühenduse võtmiseks peab kasutaja teadma serveri nime ja tavaliselt omama seal ka kasutajatunnust. Seansi algul küsitakse kliendilt kasutajanime ja parooli.

bash~$ ftp
ftp> open ftp.zoo.tartu.ee
Connected to ftp.zoo.tartu.ee.
220 ftp.zoo.tartu.ee FTP server (Version wu-2.4.2-VR16(1) Sun May 9 20:10:03 CDT 1999) ready.
Name (ftp.zoo.tartu.ee:priit):
331 Password required for priit.
Password:
230 User priit logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Nüüd olete serverisse sisse saanud ja võite toimetama hakata.

Ühenduse lõpetamine toimub käsuga disconnect; programmi lõpetamine toimub käsuga bye. ftp> disconnect 221-You have transferred 45667 bytes in 4 files. 221-Total traffic for this session was 47888 bytes in 5 transfers. 221-Thank you for using the FTP service on ftp.zoo.tartu.ee. 221 Goodbye. ftp> bye bash~$

Te võite ühenduse loomisel serveri nime ka kohe sisestada: bash~$ ftp ftp.zoo.tartu.ee Kohaliku ja kauge masina failisüsteemides õiendamine

FTP seansi juures peab tähele panema, et teie antud käsud toimivad kahes failisüsteemis: kohalik arvuti (klient) on see, kust te ftp programmi käivitasite kauge arvuti (server) on see, millega te avasite ühenduse

Õiendamine kauge arvuti failisüsteemis (on võimalik pärast ühenduse loomist ja serverisse sisse logimist) toimub sarnaselt UNIXi koorikus toimetamisele järgmiste FTP käsukude abil: cd - kataloogi vahetamine ls, dir - kataloogi sisu kuvamine mkdir - kataloogi moodustamine rmdir - kataloogi kustutamine delete - faili kustutamine mdelete -mitme faili kustutamine pwd - käesoleva kataloogi tee näitamine chmod xxx filename - failiõiguste muutmine (kui serveris sellises asjad üldse eksisteerivad); xxx näitab failiõigustele vastavat kaheksandarvu, nt 755

Õiendamine kohaliku arvuti failisüsteemis: lcd - kataloogi vahetamine; kuna kataloogi vahetamisel teatatakse uue kataloogi nimi, siis saab töökataloogi nime vaatamiseks kasutada käsku 'lcd .'

Te saate käivitada ftp programmi seest kohaliku arvuti käske/programme alustades sisestust hüüumärgiga (!): !ls - kohaliku kataloogi sisu näitamine !mkdir - kataloogi moodustamine kohalikus masinas

Ainult hüüumärgi sisestamine võimaldab põigata kohaliku arvuti koorikusse, kust saab naasta FTP seanssi käsuga exit.

Näiteks põikame koorikusse vaatama mis kell on ja kes on kohalikus süsteemis ning jätkame FTP seanssi ftp>! bash~$ date ... bash~$ who ... bash~$ exit ftp> Failide kopeerimine

Käsk put (ingl. k. pane, aseta) tähendab faili kopeerimist kohalikust arvutist kaugesse. Käsk get (ingl. k. saa, võta vastu) tähendab faili kopeerimist kaugest arvutist kohalikku.

Olles sisenenud nii kohalikus kui kauges arvutis sobivasse kataloogi, saate faili saata ftp> put failinimi

ning faili vastu võtta ftp> get failinimi

Kui te soovite, et kopeeritav fail omaks teises arvutis uut nime, sisestage ftp> put failinimi uusfailinimi ftp> get failinimi uusfailinimi

Erinevad operatsioonisüsteemid esitavad failinimedele erinevaid nõudmisi ja sellepärast võib teil tekkida vajadus nimesid muuta.

ftp programm ei võimalda vahetult kataloogistruktuure kopeerida, kuid võimalik on samas kataloogis asuvate failide poole ühekorraga pöörduda, kasutades malle: ftp> mput *

Kõigi käesolevas kataloogis sisalduvate failide kopeerimine kohalikust kaugesse arvutisse.

või ftp> mget *

Kõigi käesolevas kataloogis sisalduvate failide kopeerimine kaugest kohalikku arvutisse.

Kui te ei soovi, et iga faili kopeerimise kohta eraldi kinnitust küsitakse, andke enne käsk prompt ftp> prompt

Vahel on vajadus lisada kauges arvutis oleva faili lõppu kohalikust masinast faile juurde. Selleks on käsk append ftp> put tekst1 tekst ftp> append tekst2 tekst ftp> append tekst3 tekst

Tulemusena on kauge masina faili tekst lõpus failide tekst1, tekst2, tekst3 sisu.

Kui te soovite kauge masina kataloogi listingut salvestada kohalikku faili, siis ftp> ls ~/public_html ls_koduleht

ning kodulehe kataloogi ~/public_html listing kaugest masinast salvestatakse kohalikku faili ls_koduleht. Andmevahetuse tüübid

Algul märkisime, et FTP võimaldab pidada ühendust väga erinevate masinate vahel. Kahendfailid (nt pildid, muusikafailid) on kõikjal esitatud ühesuguse bitijadana ja nende kopeerimisega tavaliselt probleeme ei ole. Küll aga on tegu ASCII failide, nt HTML dokumentide ja CGI skriptide peerimisel. Erinevad operatsioonisüsteemid kirjeldavad spetsiaalsümboleid erinevalt. Nt reavahetust märgib UNIXi süsteemis üks bait, mille väärtus on kuueteistkümnendsüsteemis '0A'; DOS'is aga kaks baiti, kuueteistkümnendsüsteemis '0A0D'.

Kui te kopeerite UNIXi süsteemist seal koostatud ASCII faili DOSi süsteemi, andke enne käsk ascii ftp> ascii ftp> get tekst.asc

Siis hoolitseb FTP spetsiaalsümbolite õige teisenduse eest.

Tänapäeval ei esine puhtaid ASCII tekstifaile palju ja seega on kõige kindlam valida andmevahetuse tüübiks binary ftp> bin ftp> get tali.jpg Passiivne ja aktiivne andmevahetus

Tehniliselt käib FTP seanss kasutades kahte ühendust: kontrollkanalis liiguvad seanssi juhtivad korraldused andmekanalis liiguvad andmed

Aktiivse andmevahetuse puhul algatab kontrollkanalil ühenduse klient ja andmekanali liikluse server.

Passiivse andmevahetuse puhul algatab mõlemad ühendused klient.

Kui kohalik masin asub tulemüüri taga, on võimalik, et tulemüür ei luba väljast sisse ühendusi tekitada ja näib, et FTP ei tööta. Sel juhul tasub enne kopeerimisi anda käsk passiivseks andmevahetuseks ftp> passive

Üleminekuks aktiivsele andmevahetusele on käsk active. Serveri kannatuse katkemine

Kui FTP seanss kestab ning teatud aja (nt 15 minutit) jooksul ei anta uusi korraldusi ja parasjagu ei kopeeru midagi, siis katkestab server ühenduse. Selle aja pikkust, mida nimetetakse taimaudiks, saab muuta serveri poolt aktsepteeritavates piirides: ftp> idle 600

Viisakad on väärtused kuni 7200 sekundit (so kaks tundi). Sisselogimise automatiseerimine

UNIXi programmil ftp on olemas algsättimiste fail nimega .netrc, mille sisu loetakse läbi iga kord peale programmi ftp käivitamist.

Teie kodukataloogis oleva ~/.netrc faili sisu võib olla näiteks selline: machine ftp.funet.fi login anonymous password priit@zoo.tartu.ee

Näide automatiseerib ftp.funet.fi nimelise masinaga ühendumisel anonüümse FTP-ga sisselogimise. Sellesse faili võite kirjutada kõiki programmi ftp seest antavaid käske, võite omada sissekandeid mitme erineva masina kohta. Oma kasutajanime ja parooli sinna faili panna on ebasoovitav, sest keegi võib faili sisuga lubamatult tutvuda. Makrod

ftp programm võimaldab seostada käskude järgnevusi mingi unikaalse sõnaga, mille sisestamine järgnevuse täidab. Sellist järgnevust nimetatakse ftp makroks.

Tavaliselt defineeritakse makrod ~./netrc failis talvepildid lcd /home/priit/talv cd /home/priit/public_html/talv put talv*.gif

Makro 'talvepildid' käivitamine ftp> $ talvepildid

Makrot võib ka ftp programmi sees käsu macdef abil defineerida ftp> macdef pildid Enter macro line by line, terminating it with a null line mkdir jpg mkdir gif mkdir tif

ftp> $ pildid mkdir jpg 257 "/home/priit/jpg" new directory created. mkdir gif 257 "/home/priit/gif" new directory created. mkdir tif 257 "/home/priit/tif" new directory created. ftp>

Kui soovite kasutada argumente, siis talitage näite eeskujul: ftp> macdef args mkdir $1 mkdir $2 mkdir $3 ftp> args talv suvi sygis ...

Tulemusena tekitatakse kataloogid talv, suvi ja sygis.

Kui te omate makrot nimega init, täidetakse see automaatselt peale kaugesse masinasse sisselogimist. Failinimedega manipuleerivad käsud

Allkirjeldatud käskude nmap, trans, case, sunique ja runique abil saab kontrollida, kuidas teisendatakse FTPga kopeerimisel failinimesid.

Määrang kehtib uue määranguni. nmap - kopeeritavate failide nimede teisendus

Failinimede punktidega eraldatud osad on muutujate $1, $2 jne väärtuseks. ftp> nmap $1.$2 $1.html

Tulemusena saab antud juhul failinimest 'talv.htm' nimi 'talv.html'. ntrans - nimedes olevate sümbolite teisendus

Toimib analoogselt programmiga tr. Failinimedes esinevad tähed asendatakse ettemääratud skeemi alusel ftp> ntrans gif GIF

Tulemusena muutub nimi 'talv.gif' nimeks 'talv.GIF'. case - suurtähtede vastavateks väiketähtedeks teisendus ftp> case

Tulemusena saab nimest 'TALV.JPG' nimi 'talv.jpg' runique, sunique - failinimede unikaalsuse tagamine

Kui teil on kahtlus, et kopeeritava faili nimega fail võib sihtkataloogis juba olemas olla, kasutage käske:

receive unique - kohalikku arvutisse kopeeritava faili nimele lisada vajadusel järjekorranumber ftp> runique

send unique - kaugesse arvutisse kopeeritava faili nimele lisada vajadusel järjekorranumber ftp> sunique

Kui teil oli kohaliku arvuti kataloogis juba olemas fail talv.gif ja kaugest masinast kopeerisite samanimelisi faile, salvestati need kohalikku arvutisse nimedega: talv.gif.1, talv.gif.2 talv.gif.3 jne. Piiks

Kui te soovite, et arvuti piibitaks peale iga andmevahetust, andke käsk ftp> bell

Peale järjekordset käsku bell piibitamine lõpeb. Andmevahetuse kulgemise jälgimine ja FTP seansi olek

Hea kombe kohaselt UNIXi programmid ekraanile palju ei kirjuta. Kui te soovite aga jälgida failide ülekandmise progressi, andke korraldus tick või hash. Need ja paljud teised korraldused toimivad lülitina. Käsu esmasel sisestamisel määrang aktiviseeritakse ja järgmisel sisestamisel deaktiviseeritakse.

Kui soovite näha kõiki määranguid, andke käsk status: ftp> status Connected to ftp.zoo.tartu.ee. No proxy connection. Mode: stream; Type: binary; Form: non-print; Structure: file Verbose: off; Bell: off; Prompting: on; Globbing: on Store unique: on; Receive unique: on Case: on; CR stripping: on Ntrans: (in) gif (out) GIF Nmap: (in) $1.$2 (out) $1.html Hash mark printing: off; Use of PORT cmds: on Tick counter printing: on Macros: pildid

selgitused: mode, form ja structure on kasutajast sõltumatute väärtustega ja seetõttu ei paku nad praktilist huvi verbose - näitab detailselt, kuidas klient ja server suhtlevad glob - käsitleb malle mallidena või otseses tähenduses

Kui ftp käivitada võtmega -d bash~$ ftp -d ftp.zoo.tartu.ee

siis näete detailselt, kuidas suhtlus kahe masina vahel toimub. Poolelijäänud kopeerimise jätkamine

Suurte failide kopeerimisel pole harv, et ühendus vahepeal katkeb. Osa baite on kopeerunud ja failiks salvestatud. Arvatavasti soovite ühenduse uuesti luua ja jätkata kopeerimist poolelijäänud kohast. Osutub, et see on tõesti võimalik käsu reget abil: ftp> get suurfail Connection closed because of low gravity. ftp> open ftp.zoo.tartu.ee ftp> reget suurfail

Teine võimalus poolelijäänud faili lõpuni tuua on kasutada käsku resart ftp> restart 345000 ftp> get suurfail

Sel juhul jätkatakse kopeerimist suurfaili 345001. baidist. Automaagiline pakkimine serveris

Efektiivsem on kopeerida tihedalt kokkupakitud andmeid. Kui kauges masinas on huvipakkuv ent mahukas kataloogistruktuur, siis saab (mõnikord) kopeerimisel kogu struktuuri kauges masinas arhiveerida ja arhiivi kokku pakkida. Selleks tuleb vajaliku faili või kataloogi nimele get käsku andes lisada ."tar.gz" ftp> get maakaardid.tar.gz

Seepeale käivitab kauge arvuti FTP server enne faili kopeerimist programmi tar tar zcf - maakaardid

mille väljund suunatakse ftp programmi. Kohalikku arvutisse tekib kokkupakitud arhiiv.

Kuna see on FTP serveri lisavõimalus, siis ei pruugi iga server nii käituda. Anonüümne FTP

Paljud FTP serverid lubavad teatud kataloogides sisalduvale ligi ka neid, kellel pole antud süsteemis kasutajatunnust. Sellist teenust nimetatakse anonüümseks FTP-ks ja see on üks levinuim moodus Internetis andmeid vahetada. Tavaliselt lubavad anonüümsed FTP serverid andmeid alla aga mitte üles laadida.

Kuivõrd suured ja tuntud anonüümsed FTP serverid on tihti väga koormatud, eriti teatud ajal ööpäevas, siis tuleks mõistvalt suhtuda teadetesse: 'Maksimaalne kasutajate arv on hetkel täis. Go home.'. Taoliste probleemide leevendamiseks on populaarsetest serveritest loodud peegeldused (ingl. k. mirror). Peeglites on üleval sama kataloogistruktuur; tihti jõuavad uued andmed peeglitesse väikese hilinemisega.

Anonüümse FTP serveriga suhtlemine toimub samamoodi kui tavalise FTP serveriga. Sisselogimisel on kasutajanimeks 'ftp' või 'anonymous' ja parooliks, Teie e-posti aadress, nt 'priit@zoo.tartu.ee'. Külasteaja e-posti aadress on anonüümse FTP serveri administraatorile võimalus analüüsida serveri kasutust.

Kui te tegutsete tuttavas FTP serveris, siis te tõenäoliselt teate, mis laadi andmed mingis failis asuvad. Anonüümse FTP serveri kasutamisel on abiks, kui teate, et: kataloogis on tavaliselt fail README, kus on kirjas kommentaarid teiste kataloogis asuvate failide kohta failis lslR on UNIXi käsu ls -lR väljund, so kõikide kataloogistruktuuri failide nimed faili nime lõpus olev .tar viitab tar'i arhiivile faili nime lõpus olev .Z viitab compress'iga pakitud failile faili nime lõpus olev .gz viitab gzip'iga pakitud failile faili nime lõpus olev .bz2 viitab bzip2'ga pakitud failile

© EENet 2000