MAPA14: FTP (Segunda parte)
"Tecnologia... la habilidad de modificar el mundo de tal forma que ya no necesitamos experimentarlo." Max Frisch, Homo Faber
La clase pasada les dije que los pasos basicos en una sesion de FTP son:
1. Ejecutar el cliente FTP.
2. Ingresar una direccion para conectarse (y, como TELNET, los pasos 1 y 2 se pueden hacer en uno solo).
3. Identificarse en el sitio remoto.
4. Ingresar una palabra clave.
5. Buscar archivos en el directorio.
6. Cambiar directorios.
7. Configurar la modalidad de transferencia (opcional).
8. Obtener los archivos buscados.
9. Salir.
Accedi al sitio de InterNIC (rs.internic.net), le dije que soy "anonymous"
e ingrese mi direccion electronica como palabra clave.
Ahora que ya estoy adentro, voy a ver que nos ofrece este sitio. (De paso, pueden ver una lista de todos los comandos que acepta el cliente FTP escribiendo la palabra "help").
En la mayoria de los clientes FTP, el comando que se usa para pedir una lista del contenido del directorio en la maquina remota es simplemente
dir
Mi cliente FTP acepta y utiliza el comando "dir", asi que escribo
dir
y en mi pantalla aparece lo siguiente:
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
total 52
drwxr-xr-x 8 507 1 512 Jun 6 04:05 NIC-support
drwxr-xr-x 16 60 1 512 Jun 12 23:34 archives
drwxrwxr-x 2 root 10 512 Jun 17 17:38 billing
drwxr-xr-x 2 root 1 512 Mar 20 23:44 bin
drwxr-xr-x 2 root 1 512 Apr 5 10:34 dev
drwxr-xr-x 2 60 1 512 Jun 17 17:34 domain
drwxr-xr-x 2 root 1 512 Mar 20 23:44 etc
drwxr-xr-x 2 60 1 512 Mar 20 23:45 home
drwxr-xr-x 4 root 1 512 Jun 17 17:49 internic
-rw-rw-r-- 1 60 1 29843 Jan 9 02:54 ls-ltR
... %< etc. etc. etc. %< ...
Se trata de una lista de todo lo que hay en el directorio (bueno, en realidad, es
una lista de ALGUNAS de las cosas que hay en este directorio). Demosle un vistazo
a la primera entrada para descifrar lo que significa todo esto:
drwxr-xr-x 8 507 1 512 Jun 6 04:05 NIC-support
Si la linea comienza con un "-" en lugar de una "d", quiere decir
que se trata de un archivo. La letra "d" al comienzo de este ejemplo me
dice que no es un archivo, es un subdirectorio.
Que quiere decir esto? Bueno, supongan que el sitio FTP es como una casa grande. Uno entra por la puerta y pasa a un hall de entrada. Esta habitacion puede tener cosas adentro, pero tambien tiene puertas que llevan a otras habitaciones.
Los subdirectorios, las "d", son como puertas que dan a otras "habitaciones"
y los archivos, los "-", son las cosas que se pueden llevar de esas habitaciones.
Volviendo a nuestro ejemplo,
drwxr-xr-x 8 507 1 512 Jun 6 04:05 NIC-support
la parte "drwxr-xr-x" nos dice que esta entrada es un subdirectorio (la
parte "rwxr-xr-x" son solo unas cosas de seguridad). El "512"
nos dice el tamaño del subdirectorio en bytes. "Jun 6 04:05" nos dice
la fecha y la hora en que este subdirectorio fue actualizado por ultima vez. La ultima
parte, "NIC- support", es el nombre del subdirectorio.
Veamos un ejemplo mas:
-rw-rw-r-- 1 60 29843 Jan 9 02:54 ls-1tR
Hay un "-" en lugar de una "d", asi que es un archivo. El numero
"29843" indica que el tama§o del archivo es 29.843 (un poco mas de
29 K), el archivo fue actualizado por ultima vez el 9 de enero a las 02:54 y el nombre
del archivo es "ls-ltR".
Volvamos al contenido del directorio principal:
drwxr-xr-x 8 507 1 512 Jun 6 04:05 NIC-support
drwxr-xr-x 16 60 1 512 Jun 12 23:34 archives
drwxrwxr-x 2 root 10 512 Jun 17 17:38 billing
drwxr-xr-x 2 root 1 512 Mar 20 23:44 bin
drwxr-xr-x 2 root 1 512 Apr 5 10:34 dev
drwxr-xr-x 2 60 1 512 Jun 17 17:34 domain
drwxr-xr-x 2 root 1 512 Mar 20 23:44 etc
drwxr-xr-x 2 60 1 512 Mar 20 23:45 home
drwxr-xr-x 4 root 1 512 Jun 17 17:49 internic
-rw-rw-r-- 1 60 1 29843 Jan 9 02:54 ls-ltR
... %< etc. etc. etc. %< ...
Quiero salir de este directorio principal y entrar a un subdirectorio.
Para cambiar de directorio en la mayoria de los clientes FTP, hay que usar el comando
cd <directorio>
y reemplazar <directorio> por el nombre del directorio o subdirectorio al que
quieren acceder. Como estamos visitando InterNIC, vayamos al subdirectorio "internic".
Para acceder, escribo
cd INTERNIC
y aparece lo siguiente:
550 INTERNIC: No such file or directory
Que paso?
Una de las desgracias del FTP es que, en la mayoria de los casos, distingue las mayusculas
de las minusculas ("case sensitive"). Mi comando "cd INTERNIC"
no funciono porque no existe ningun directorio "INTERNIC"... el directorio
es "internic" :)
Probemos de nuevo. Escribo
cd internic
y aparece lo siguiente:
250 CWD command successful.
#Funciono!
Ahora necesito ver el contenido de este nuevo directorio. ®Se acuerdan del comando
que hay que usar? (Respuesta: 'dir') Escribo 'dir' y aparece:
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
total 4
-rw-r--r-- 1 root 1 210 Dec 19 1995 README
drwxr-xr-x 2 root 1 512 May 20 21:46 faq
drwxr-xr-x 2 root 1 512 Mar 20 23:54 pgp
lrwxrwxrwx 1 root 1 18 Mar 20 23:54 policy ...
El archivo README parece bastante importante. Seguro que contiene informacion que
va a hacer mi vida mucho mas facil. (Regla de oro: si ven un archivo que se llama
README o INDEX, es un archivo importante.) Necesito bajar este archivo.
Para bajar un archivo por FTP, hay que usar el comando
get <archivo>
y reemplazar <archivo> por el nombre del archivo que quieren conseguir. El
comando get recupera el archivo del sitio remoto y lo almacena en el sistema local.
Como quiero el archivo README, escribo
get README
(asegurandome de usar bien las mayusculas y minusculas), y aparece en mi pantalla
lo siguiente:
Invalid local filename; use 'name.type.mode' or 'name.type'
Y ahora que pasa?!?
Este problema se presenta cuando bajamos archivos de "una palabra". Algunos
proveedores de Internet requieren que los archivos almacenados en sus maquinas tengan
algun tipo de extension. No pueden guardar un archivo cuyo nombre sea solo README...
tiene que llamarse README.<tipo> (ej., README.DOC, README.TXT, etc).
Como el comando "get README" no funciono, voy a tener que usar:
get <archivo> <nombre que quiero ponerle >
donde hay que reemplazar <archivo> por README y <nombre que quiero ponerle>
por el nombre con que quiero que se guarde el archivo en la computadora local.
Entonces escribo
get README README.DOC
y aparece lo siguiente en mi pantalla:
200 PORT command successful.
210 bytes received.
150 Opening ASCII mode data connection for README (210 bytes).
226 Transfer complete.
#Funciono! Salgamos de FTP y veamos lo que hicimos.
Para salir de FTP, tienen que usar el comando "bye" o "quit".
En mi cliente, el comando que hay que usar es "quit". Asi que escribo
quit
y aparece lo siguiente:
221 Goodbye. Ready; T=0.54/0.96 01:45:53
Bien. Consegui el archivo. Pero, ®donde esta? Esta en la cuenta que tengo en
el sistema de mi proveedor de Internet.
Segun el sistema, va a ser facil o dificil llegar a los archivos que bajaron por
FTP (en Unix, escribir "ls"; en VM, escribir "fl"). El proveedor
les puede decir como acceder, leer e imprimir esos archivos.
Mirando este archivo que acabo de bajar, descubro que el archivo contiene la siguiente
informacion:
This is the InterNIC documentation series that consists of two
directories:
1) policy - current InterNIC-specific registration policies.
2) faq - documents dealing with InterNIC frequently asked questions.
Como queremos saber que es InterNIC y como la palabra "faq" significa "Frequently
Asked Questions", estoy seguro que vamos a encontrar informacion en el subdirectorio
"faq".
Por lo que dice el archivo README, lo que estoy buscando esta en el directorio "internic"
y en el subdirectorio "faq".
En el formato FTP, esto seria
/internic/faq
Es lo mismo que decir "en el directorio internic y en el subdirectorio faq"
y, como veran en un momento, esta notacion puede ahorrarme algunos pasos.
Si quisiera escribir la direccion completa de Internet, escribiria
ftp://rs.internic.net/internic/faq
Esta clase de direccion se llama Uniform Resource Locator (URL). En la ultima semana
del taller vamos a hablar sobre estas direcciones, pero por ahora vamos a ver una
forma facil de leerlas. La primera parte de una URL (que en este caso es "ftp://")
nos dice que herramienta de Internet necesitamos para acceder a ese recurso (como
la primera parte dice "ftp://", ®adivinan que herramienta vamos a
usar?). La segunda parte (en este caso "rs.internic.net") nos dice la direccion
del recurso de Internet al que e stamos conectados y la ultima parte (en este caso
"/internic/faq") nos indica los directorios y sudirectorios.
Volvamos a InterNIC. Escribo
ftp rs.internic.net
y aparece lo siguiente:
220-*****Welcome to the InterNIC Registration Host *****
*****Login with username "anonymous"
*****You may change directories to the following:
policy - Registration Policies
templates - Registration Templates
netinfo - NIC Information Files
domain - Root Domain Zone Files
220 And more!
Como no me pide mi userid, escribo
USER
y aparece
Username:
Como no tengo una cuenta en el servidor de InterNIC, escribo
anonymous
y aparece lo siguiente en mi pantalla:
331 Guest login ok, send your email address as password.
Password:
Escribo mi direccion electronica completa -crispen@campus.mci.net- como mi palabra
clave y me conecto. Se que quiero ir al directorio "internic" y despues
al subdirectorio "faq". Podria escribir "cd internic" y despues
"cd faq", pero es mucho mas facil sa ltar al directorio "faq"
con un comando.
Puedo hacer ese salto usando "/internic/faq". Si escribo
cd /internic/faq
salto directamente al directorio "faq":
250 CWD command successful
Como no tengo ni idea de lo que hay en el subdirectorio "faq", escribo
dir
y aparece
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
total 2
-rw-r--r-- 1 root 1 1907 Dec 19 22:09 new ...
-rw-r--r-- 1 root 1 1642 May 20 21:30 roadmap.faq
Hay dos archivos en este directorio (lo sabemos por el "-" en la primera
columna). Mmmm... ®cual de estos dos archivos piensan que vamos a buscar?
La faq nueva es bastante tecnica, pero el archivo "roadmap.faq" -escrito para este taller- explica que es InterNIC. Como el archivo que quiero es "roadmap.faq", escribo
get roadmap.faq
y aparece en mi pantalla:
200 PORT command successful
150 Opening ASCII mode data connection for roadmap.faq
(1642 bytes).
y despues de unos segundos
226 Transfer complete. 1642 bytes transferred.
Transfer rate 16.58 Kbytes/sec.
FUNCIONO ! ! ! ! SI ! ! ! ! :)
Para salir de FTP escribo "bye" o "quit", y me voy. El archivo
"roadmap.faq" esta ahora en mi cuenta en la maquina de mi proveedor de
Internet.