Telemat Lab's home page


Copyright © 1986 Universita' di Firenze. All rights reserved.

Free license available.




INTERNET & APPLICATIONS


di: D. Mariano e C. Guadalupi


APPLICATIVI:Trasferimento ed Accesso ai File: esempio 1

home pageIndicePrec.Succ.




Un esempio di sessione FTP






Come collegarsi (FTP, Anonymous FTP)



Alla linea di comando del proprio host (sistema collegato in rete che offre un servizio), basta digitare

ftp [hostname]
oppure semplicemente 'ftp' ottenendo il prompt aprendo poi la connessione.
ftp
ftp> open [hostname]

Si considera segno di poca cortesia (etichetta della rete) collegarsi ad un sito durante l'orario d'ufficio (dalle 6 del mattino alle 6 pomeridiane, ora locale). Questo perché il trasferimento di file in rete impegna molta potenza di calcolo. Ci sono siti ftp ai quali è possibile collegarsi 24 ore su 24.

Severe restrizioni proibiscono l'accesso da parte di un client arbitrario a qualunque file, finchè non ha ottenuto un login ed una password dal computer su cui il server opera. Per rendere possibile l'accesso a files pubblici, molti siti TCP/IP permettono l'FTP anonimo. Questo significa che un client non necessita di un account o una password, ma l'utente specifica "anonymous" o "ftp" come nome del login e guest o il proprio indirizzo di e-mail come password. Il server permette così login anonimi, ma restringe l'accesso solo ai files pubblici disponibili.
Per esempio, supponiamo che qualcuno abbia messo una copia on-line di un testo nel file tcpbook.tar in una sottodirectory utenti/studenti sulla macchina media2.die.unifi.it. Un utente logato in un'altro sito come user_A può ottenere una copia del file eseguendo quanto segue:

% ftp media2.die.unifi.it
Connected to media2.die.unifi.it
220 media2.die.unifi.it FTP server (Version 6.8) ready.
Name (ftp.die.unifi.it:user_A) : anonymous
331 Guest login ok, send e-mail address as password.
Password: guest <------ (in realtà non visualizzata)
230 Guest login ok, access restrictions apply.
ftp> get utenti/studenti/tcpbook.tar bookfile
200 PORT command okay.
150 Opening ASCII mode data connection for tcpbook.tar (9895469 bytes).
226 Transfer complete.
9895469 bytes received in 22.76 seconds (4.3e+02 Kbites/s)
ftp> close
221 Goodbye.
ftp> quit

In questo esempio, l'utente specifica la macchina media2.die.unifi.it come argomento del comando FTP, così che il client apra automaticamente una connessione e ottenga subito l'autorizzazione. L'utente invoca l'FTP anonimo specificando il login anonimous e la password guest (anche se il nostro esempio mostra la password che l'utente digita, il programma ftp non la visualizza sullo schermo dell'utente).
Dopo aver digitato un login ed una password, l'utente richiede una copia di un file usando il comando get. Nell'esempio, il comando get è seguito da due argomenti che specificano il nome del file remoto ed un nome per la copia locale. Il nome del file remoto è utenti/studenti/tcpbook.tar e la copia locale sarà collocata in bookfile. Una volta che il trasferimento è completato, l'utente digita close per rompere il collegamento con il server, e digita quit per abbandonare il client.
Intervallati ai comandi digitati dall'utente ci sono dei messaggi informativi. I messaggi FTP iniziano sempre con un numero di tre cifre seguito dal testo. Molti di essi provengono dal server, mentre i restanti dal client locale.
La sessione di esempio illustra anche un aspetto dell'FTP descritto precedentemente: la creazione di una nuova connessione TCP per il trasferimento dei dati. Il comando PORT del client riporta che un nuovo numero di porta TCP è stato ottenuto per poter essere usato come connessione dati. Il client invia le informazioni sulla porta al server sulla connessione di controllo; i processi di trasferimento dati ad entrambe le parti usano il nuovo numero di porta nel formare la connessione. Dopo che il trasferimento è completato, i processi di trasferimento dati ad entrambe le parti chiudono la connessione.

Molti siti ftp aiutano con messaggi vari l'utente che cerca di connettersi, anche in caso di errore, ad esempio:

ftp> open media2.die.unifi.it
Connected to media2.die.unifi.it
220 media2 FTP server (Version 6.8)
Name (media2.die.unifi.it:user_A): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password:
230-The response 'user_A.die.unifi.it' is not valid

230-Next time please use your e-mail address as your password
230-        for example: joe@pippo.sm.die.unifi.it

Se si possiede un account sulla macchina e si vogliono trasferire dei propri file, alla richiesta di name - password basta inserire i propri dati, aspettare di essere riconosciuti per poi entrare nella propria area di lavoro. Esempio:

ftp
Connected to media2.die.unifi.it
220 media2 FTP server (Version 6.8)
Name (media2.die.unifi.it:colos): user_A
331 Password required for user_A.
Password:
230 User user_A logged in.
Using binary mode to transfer files.
ftp>
Per sconnettersi basta usare
ftp> bye   
oppure
ftp> quit 




I principali comandi di ftp



Una volta connessi ad un sito ftp, si opera sull'host remoto.

Fra i possibili comandi ce ne sono alcuni molto utili:

dir o ls
Ritorna la lista dei file contenuti nella directory corrente con tutte le informazioni relative.

La maggior parte dei siti di archivi contengono un documento 'README' (leggimi) che contiene informazioni riguardo al sito, indicazioni varie sulle risorse e come usarle etc...
È buona norma (netiquette) prelevarlo e leggerlo, specie se è la prima volta che ci si collega in quel sito.
Esempio:

ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 42
drwxr-xr-x  11 root     10          1024 Feb  2 06:00 .
drwxr-xr-x  11 root     10          1024 Feb  2 06:00 ..
-rw-r--r--   1 root     root         931 Dec 29  1993 README
dr-xr-xr-x   3 root     10          1024 Apr  9  1994 bin
dr-xr-xr-x   3 root     root        1024 Nov 24 20:30 etc
dr-xr-xr-x   7 root     10          1024 Jan 31 11:33 pub
drwxrwxrwt   2 root     root          24 Feb  2 06:00 tmp
226 Transfer complete.
ftp>
Con PORT command successful ftp indica il riconoscimento del comando dir, e con Transfer complete indica il buon fine del comando.

cd [nome directory]
Per cambiare directory. Nel caso specifico per salire di una directory si usa: in un sistema Unix cd .., in VMS cd [-].
Esempio:
ftp> cd pub
250-Please read the file README.BENCHMARK
250-  it was last modified on Fri Dec 23 11:07:23 1994 - 41 days ago
250 CWD command successful.
ftp>
CWD (Change Working Directory) command successful, significa che il comando di cambio directory ha lavorato in modo corretto.

get [nome file]
Per prelevare un file. Nome file è il nome del file sul sistema remoto.
Esempio:
ftp> get README
200 PORT command successful.
150 Opening BINARY mode data connection for README (931 bytes).
226 Transfer complete.
931 bytes received in 0.05 seconds (18.29 Kbytes/s)
ftp>
Una copia del file si troverà nella directory corrente del proprio sistema locale, la macchina dalla quale è stata aperta la connessione ftp.

Se si desidera cambiare il nome al file, digitando:
get [nome file] [nuovo nome ]

si otterrà una copia del file con un nuovo nome.

Per visualizzare un file remoto direttamente nella sessione di ftp si può usare il comando get con l'opzione -:

get [nome file] -
Esempio:

ftp> get README -
200 PORT command successful.
150 Opening BINARY mode data connection for README (638 bytes).
This directory contains stuff related to network in general,
and will contain stuff on DSINET in particular in future.

For the moment, I put the two exceptional tcp/ip tutorials
by Charles L. Hedrick. But I'll put more things when I'll find it
and I think they are sufficiently interesting.
Here is the part of the 'readme' from cs.rutgers.edu:

tcp-ip-intro.doc        General introduction to TCP/IP networking technology
tcp-ip-intro.ps           Postscript version
tcp-ip-admin.doc        How to set up a TCP/IP based network
tcp-ip-admin.ps           Postscript version

Please notice that those files are gzipped, so their suffix is '.gz'.

carlo@ing.unifi.it
226 Transfer complete.
638 bytes received in 0.03 seconds (19.20 Kbytes/s)
ftp>

ftp documenta ogni trasferimento indicando il buon fine dell'operazione e di quanto tempo ha impiegato.

put [nome file]
Per trasferire un file dal proprio sistema locale al sistema remoto (inverso di get), funziona solo se le directory hanno permessi di scrittura.

Come il comando get può essere specificato un nome diverso.

mget *.[estensione] | [lettera]* ...
Per prelevare più di un file per volta specificando quelli voluti (es. *.txt tutti i file con estensione .txt)

Ad ogni file verrà chiesta conferma.

mput *.[estensione] | [lettera]* ...
Per trasferire più file assieme (inverso di mget).

hash
Stampa '#' ogni buffer trasferito.
Risulta essere molto comodo per lunghi trasferimenti per controllarne l'andamento.
Esempio:

ftp> hash
Hash mark printing on (1024 bytes/hash mark).   <-- abilitato

ftp> put BABY.gif
200 PORT command successful.
150 Opening BINARY mode data connection for BABY.gif.
########################################################################
226 Transfer complete.
74120 bytes sent in 0.23 seconds (309.22 Kbytes/s)

ftp> hash
Hash mark printing off.     <-- disabilitato
ftp>

prompt
Serve per disabilitare la richiesta di conferma di ogni singolo file nell'operazione mget o mput.

Per ritornare allo stato originario basta ridare il comando.
Esempio:

ftp> prompt
Interactive mode off.
ftp> prompt
Interactive mode on.
ftp> 

size [nome file]
Mostra la grandezza di un file.
Esempio:
ft>> size schema.dvi
213 288
ftp>

Esistono due differenti modalità di trasferimento: ASCII e binaria.

La prima (ASCII) serve per trasferire solo file di testo, la seconda (binaria) per archivi, file eseguibili, immagini etc...

Ftp ASCII fa anche la conversione di "a capo" che nei tre contesti UNIX, MS-DOS, MAC è rispettivamente LF, CR-LF, CR ed anche da ASCII a EBCDIC. Questo ha un significato storico abbastanza rilevante:
la rete è nata per trasferire soprattutto della posta elettronica, file di testo, ed alcune macchine che funzionano da ponte fra i sistemi buttano l'ottavo bit di ogni byte.
Nei file di testo non causa nessun danno perché non contiene niente di significativo, invece nei file binari è praticamente una catastrofe.

Scegliendo la modalità binaria ftp converte automaticamente i file in modo che l'ottavo bit non contenga più niente di importante.

Per cambiare la modalità si usano i comandi:

ascii o type ascii o semplicemente asc

ftp> asc
200 Type set to A.
binary o type binary o bin
ftp> bin
200 Type set to I.
ftp> type ascii
200 Type set to A.

Per ottenere aiuto si può usare il comando:
help o ? anche dando il nome di un comando
Esempio:

ftp> help dir
dir             list contents of remote directory
ftp> help type
type            set file transfer type
ftp>

OSS: Normalmente i trasferimenti anonimi sono sempre registrati per motivi di sicurezza.






Ultimo aggiornamento: 11 Novembre 1996



Telemat Lab's home page

home pageIndicePrec.Succ.




Explore the TELEMAT Site !!!

WORK IN PROGRESS by D. Mariano e C. Guadalupi