FTP kliendi kasutamine
Sisukord
- 1 FTP olemus
- 2 Ühenduse loomine ja lõpetamine
- 3 Kohaliku ja kauge masina failisüsteemides õiendamine
- 4 Failide kopeerimine
- 5 Andmevahetuse tüübid
- 6 Serveri kannatuse katkemine
- 7 Sisselogimise automatiseerimine
- 8 Makrod
- 9 Failinimedega manipuleerivad käsud
- 10 nmap - kopeeritavate failide nimede teisendus
- 11 runique, sunique - failinimede unikaalsuse tagamine
- 12 Piiks
- 13 Andmevahetuse kulgemise jälgimine ja FTP seansi olek
- 14 Poolelijäänud kopeerimise jätkamine
- 15 Anonüümne FTP
- 16 FTP üle TLS/SSL
- 17 Graafiline ftp klient gFTP
- 18 Kasulikud lisamaterjalid
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, kus 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 sisselogimist) 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 sellised 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 kopeerimisel. 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 nimetatakse 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 aga soovite 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 restart
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ülastaja 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 ls-lR 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
FTP üle TLS/SSL
Debian GNU/Linux sisaldab paketti ftp-ssl, mille paigaldamiseks tuleb öelda apt-get install ftp-ssl
FreeBSD's on portsude ftp harus pakett bsdftpd-ssl millega tuleb lisaks TLS/SSL toega ftp serverile kaasa ka ssl toega sarnane utiliit
Graafiline ftp klient gFTP
gFTP paigaldamiseks sobib öelda
# apt-get install gftp
Programmi kasutamine võiks välja paista nt selliselt