Laboratorio di Calcolo Avanzato del Dipartimento di Fisica


Trasferimento File : FTP




Lavorare con 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]

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 vaxpr.fis.unipr.it
Connected to vaxpr.pr.infn.it.
220 vaxpr.pr.infn.it MultiNet FTP Server Process 3.2(14) at Mon 11-Sep-95 6:10PM-MET-DST
Name (vaxpr:covati): covati 
331 User name (covati) ok. Password, please.
Password:
230 User COVATI logged into DISK$USER:[COVATI] at Mon 11-Sep-95 18:10, job 2020d78a.
Remote system type is VMS.
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@dsi.unimi.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...

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>

È possibile utilizzare programmi per trasferimento file piu' semplici di quello sopra descritto. Viene riportato di seguito l'esempio di uno dei piu' diffusi che funziona in ambiente windows: WS_FTP



Anonymous FTP


Centinaia di sistemi collegati ad Internet hanno biblioteche di file, o archivi, accessibili al pubblico.
Per la maggior parte consistono in programmi shareware (programmi distribuiti liberamente dall'autore che chiede una modesta somma di denaro da inviare dopo l'uso, se soddisfatti; non si tratta di vendita), o di pubblico dominio (gratutiti, l'autore cede completamente ogni diritto) praticamente per ogni tipo di computer.
Per prelevare dei file in luoghi di pubblico accesso, alla richiesta di identificazione si digita:

anonymous
ed alla richiesta di password per correttezza si digita il proprio indirizzo e-mail.
Questo tipo di ftp viene chiamato proprio anonymous ftp perché si accede ad una specifica area che il sistema ha preddisposto nella quale ci sono file prelevabili liberamente.
Esempio:
ftp> open nic.switch.ch
Connected to nic.switch.ch
220- Hello covati at prpc1.fis.unipr.it [192.135.11.101]
220-
220- Welcome to the SWITCHinfo FTP archive.
220-
Name (nic.switch.ch:covati): anonymous
331 Guest login ok, give your e-mail address (user@domain) as password.
Password: 
230-Guest `covati@prpc1.fis.unipr.it' login ok.
230-
230- *** A service from SWITCH - The Swiss Academic and Research Network ***
230-
230-Welcome, you are 44th archive user in your class (max 50).
230-There are 91 users in all classes (max 245)
230-The maximum bandwidth for you is limited.
230-At this moment it would set to 400 kbit/s.
230-
230- Welcome to the SWITCHinfo FTP archive
230-
230- ***  Access to this FTP service is exclusively allowed for  ***
230- ***  - Swiss universities, schools & organisations with a   ***
230- ***    SWITCH service contract                              ***
230- ***  - foreign education & research organisations           ***
230-
230-Local time is Mon Sep 11 18:04:39 1995 MET DST
230-
230-We have special access features, see file /0README
230-  It was last updated Sun Apr 16 15:56:17 1995 - 148.1 days ago
230 
ftp>
Molti siti ftp aiutano con messaggi vari l'utente che cerca di connettersi, anche in caso di errore, ad esempio:
ftp> open nic.switch.ch
Connected to nic.switch.ch.
220- Hello covati at prpc1.fis.unipr.it [192.135.11.101]
220-
220- Welcome to the SWITCHinfo FTP archive.
220-
Name (nic.switch.ch:covati): anonymous
331 Guest login ok, give your e-mail address (user@domain) as password.
Password: 
230-You didn't give your Internet e-mail address as the password.
230-You gave: `covati.prpc1.fis.unipr.it'
   -Example:
   -      Firstname.Lastname@prpc1.fis.unipr.it



Archie


Come trovare un file specifico in Internet?

Alan Emtage, Bill Heelan e Peter Deutsch, studenti all'università McGill di Montreal, si posero proprio questa domanda e fecero qualcosa al riguardo.

Crearono un sistema di database, chiamato archie. esso chiama periodicamente le biblioteche di file per scoprire cosa hanno a disposizione. Chiunque può chiamare Archie, digitare un nome di file e vedere in quale luogo su Internet è reperibile.

Archie attualmente cataloga quasi 1.000 biblioteche di file sparse per il mondo.

Ci sono tre modi per chiedere ad archie di trovare un file:

  1. con telnet
  2. attraverso un programma 'cliente' archie sul proprio sistema host
  3. tramite la posta elettronica

Tutti e tre i metodi consentono di digitare un nome di file, completo o parziale, ottenendo come risposta l'host Internet che ospita tale file.

  1. Attraverso telnet ci si connette a dei siti che offrono proprio questo servizio.

    Ad esempio: archie.mcgill.ca, archie.sura.net, archie.unl.edu, archie.ans.net, archie.rutgers.edu ...

    Alla richiesta di login si digita
    archie

    ed alla eventuale richiesta di password il proprio indirizzo di e-mail.

    Il comando chiave è
    prog [nomefile | espressione] anche find [espressione]

    dove 'nomefile' è il programma, file o documento che si intende cercare. È possibile digitare anche parte del nome, 'espressione'.

    Tramite help o h
    e con help [espressione | nome-comando]
    si entra in modalità help ottenendo tutte le informazioni possibili sui comandi, compresa la lista dei comandi (help ?).
    ^C, cioè CTRL C
    per uscire dall'help.
    Esempio:

    archie> h
    These are the commands you can use in help:
    
                   .    go up one level in the hierarchy
    
                   ?    display a list of valid subtopics at the current level
    
    <newline>
    done, ^D, ^C        quit from help entirely
    
            <string>    help on a topic or subtopic
    help> find
    
     The 'find' command (also known as the 'prog' command)
     allows you to search the database for a specified pattern.
    
     The usage is:
    
        find <expression>
    
     where the interpretation of <expression> depends on the
     current value of the 'search' variable. Searches may be
     performed in a number of different ways. See the help
     section on the 'search' variable for a full explanation.
     ......
    
    help>^C
    archie>

  2. Diversi siti Internet hanno oggi i propri client (architettuta client-server) archie che ricevono la richiesta da parte dell'utente locale e la passano al server archie più vicino.

    Per usare archie ricercando un file, un documento, un programma o altro basta digitare :
    archie [opzioni] [espressione]
    'espressione' puņ essere il nome oppure una parola chiave.

    Archie ritornerà l'elenco degli host che ospitano dei documenti contenenti la parola chiave data.

    Esempio:

    > archie network
    Host ftp.iij.ad.jp
    
        Location: /pub/BSD386/Japan
          DIRECTORY drwxr-xr-x       4096  Dec 10 22:14  network
        Location: /pub/linux/sunsite/kernel/patches
          DIRECTORY drwxr-xr-x       4096  Jan 22 14:44  network
        Location: /pub/mac/umich/util
          DIRECTORY drwxr-xr-x       4096  Jan  1 12:09  network
        Location: /pub/msdos-j
          DIRECTORY drwxr-xr-x        512  Nov 23 1993  network
        Location: /pub/msdos
          DIRECTORY drwxr-xr-x        512  Dec  5 14:34  network
        Location: /pub
          DIRECTORY drwxr-xr-x       4096  Jan 24 10:58  network
    
    Host ftp.foretune.co.jp
    
        Location: /pub
               FILE -rwxr-xr-x         17  Apr 11 1994  network
    archie>
    
    Le opzioni possono essere:
    > archie 
    Usage: archie [-acelorstvLV] [-m hits] [-N level] string
              -a : list matches as Alex filenames
              -c : case sensitive substring search
              -e : exact string match (default)
              -r : regular expression search
              -s : case insensitive substring search
              -l : list one match per line
              -t : sort inverted by date
         -m hits : specifies maximum number of hits to return (default 95)
     -o filename : specifies file to store results in
         -h host : specifies server host
              -L : list known servers and current default
        -N level : specifies query niceness level (0-35765)
    >
    Esempio:
    > archie network
    Host ftp.iij.ad.jp
    
        Location: /pub/BSD386/Japan
          DIRECTORY drwxr-xr-x       4096  Dec 10 22:14  network
        Location: /pub/linux/sunsite/kernel/patches
          DIRECTORY drwxr-xr-x       4096  Jan 22 14:44  network
        Location: /pub/mac/umich/util
          DIRECTORY drwxr-xr-x       4096  Jan  1 12:09  network
        Location: /pub/msdos-j
          DIRECTORY drwxr-xr-x        512  Nov 23 1993  network
        Location: /pub/msdos
          DIRECTORY drwxr-xr-x        512  Dec  5 14:34  network
        Location: /pub
          DIRECTORY drwxr-xr-x       4096  Jan 24 10:58  network
    
    Host ftp.astec.co.jp
    
        Location: /pub
          DIRECTORY drwxrwxr-x       1536  Jan 24 11:24  network
    ...............
    


    In ambiente X Window esiste un'applicazione, xarchie, che integra le funzionalità di archie e di ftp:

    Da la possibilità di ricercare un certo file o documento etc..., trovatolo si può direttamente eseguire il comando get di ftp, cioè prelevarlo direttamente.

  3. Il terzo metodo per archie è costituito dalla posta elettronica.

    Basta scrivere un messaggio a dei siti particolari (ad esempio archie@quiche.cs.mcgill.ca) lasciando vuoto l'argomento (il subject) e nel testo del messaggio scrivere:
    prog [nomefile] o [espressione]

    è possibile specificare più di un argomento:
    prog [nomefile1] [nomefile2] ... o [espressione1] [espressione2] ...

    Entro poche ore archie risponderà mandando un elenco dei siti per richiedere il o i file.



Lista degli Archie server in Worl-Wide Web: List of WWW Archie Services (http://web.nexor.co.uk/archie.html).


			

Ftp attraverso Web


Per collegarsi ad un sito con un ftp anonimo attraverso dei client-browser Web basta utilizzare il tipo di url:

file://nome-sito oppure
ftp://nome-sito

ad esempio file://ftp.eff.org oppure ftp://prix1.fis.unipr.it


Ftp con alcuni browser Web: Mosaic Netscape e Lynx

Si può aprire una nuova connessione tramite il bottone Open Url

in Mosaic
in Netscape
in Lynx
URL to open: file://ftp.eff.org

Si è connessi direttamente al sito ftp ottenendo il menu principale le cui voci possono essere:

Creare un link: Ad esempio collegamento a prix1 del Dipartimento di Fisica di Parma:
<a href="ftp://prix1.fis.unipr.it">


Lista dei siti FTP presso l'NCSA: FTP Interface (http://hoohoo.ncsa.uiuc.edu:80/ftp-interface.html).



Posti ftp interessanti


Ci sono moltissimi siti ftp che contengono documenti veramente interessanti, ma la miglior cosa rimane sempre la ricerca tramite archie.

Gli orari indicati per i vari siti sono quelli della costa orientale degli Stati Uniti (- 6 ore rispetto all'Italia) e rappresentano i momenti in cui è considerato accettabile collegarsi.


Documento realizzato da Roberto Covati