% Traduccion realizada por Alfonso Belloso. Envie sus comentarios a:
%            Alfonso Belloso, 2:344/17.2 (FidoNet)
%            alfon@bipv02.bi.ehu.es.es (InterNet)
% $Log: app-ftp.tex,v $
% Revision 0.5.0.1  1996/02/10 23:45:06  rcamus
% Primera beta publica
%
%


\chapter{Tutorial de FTP y Lista de Sites}\label{app-ftplist-num}
\label{app-ftp}

\index{FTP!uso|(}

FTP (``File Transfer Protocol'') es el conjunto de programas que se usa en
Internet para transferir ficheros entre sistemas. La mayor\'{\i}a de los 
sistemas UNIX, VMS y MS-DOS de Internet tienen un programa llamado {\tt 
ftp} que se usa para transferir estos ficheros, y si usted tiene acceso a 
Internet, el mejor modo de descargarse el software de Linux es usando 
{\tt ftp}. Este ap\'endice cubre el uso de {\tt ftp} a nivel 
b\'asico---por supuesto, hay muchas m\'as funciones y usos del {\tt ftp} de 
los que se dan aqu\'{\i}.

Al final de este ap\'endice hay una lista de sites FTP donde se puede
encontrar el software de Linux. Adem\'as, si no tiene acceso directo a
internet, pero puede intercambiar correo electr\'onico con Internet, abajo
se incluye informaci\'on sobre como usar el {\tt ftpmail}.

Si est\'a usando un sistema MS-DOS, UNIX, o VMS para traer ficheros desde
Internet, entonces {\tt ftp} ser\'a un programa a base de comandos. Sin
embargo, existen otras implementaciones de {\tt ftp}, como la versi\'on
Macintosh (llamada {\tt Fetch}) con un bonito interface guiado por 
men\'us, que lo hacen m\'as amigable y c\'omodo de usar. Incluso si no 
esta usando la versi\'on de comandos de {\tt ftp}, la informaci\'on que 
se facilita deber\'{\i}a serle de ayuda.

\bigskip
{\tt ftp} puede usarse tanto para ``subir'' (enviar) como para ``bajar'' 
(recibir) ficheros desde los sites de Internet. En la mayor\'{\i}a de 
situaciones, usted estar\'a bajando software. En Internet hay un gran 
n\'umero de {\bf FTP archive sites} de acceso p\'ublico, m\'aquinas que 
permiten a cualquiera hacer {\tt ftp} sobre ellas y bajarse el software. 
Un ``archive site'' de este tipo es {\tt sunsite.unc.edu}, que contiene 
un mont\'on de software de Sun Microsistems, y que act\'ua como uno de 
los principales sites de Linux. Adem\'as, los FTP archive sites se 
reflejan ({\bf mirror}) el software unos a otros---es decir, el software 
que se sube a un site ser\'a autom\'aticamente copiado a un gran n\'umero 
de otros sites. De modo que no se sorprenda si ve exactamente los mismos 
ficheros en muchos sites diferentes.

\section{Aprendiendo {\tt ftp}}
Fijese que en el ejemplo ``screens'' que figura debajo solamente estoy
mostrando la informaci\'on m\'as relevante, y lo que usted vea podr\'{\i}a diferir.
Tome nota tambi\'en de que los comandos en {\em it\'alicas\/} representan
comandos que usted teclea; todo lo dem\'as es la salida de pantalla.

Para arrancar el {\tt ftp} y conectar con un site, use simplemente el comando
\begin{tscreen}
ftp \cparam{hostname}
\end{tscreen}
donde \cparam{hostname} es el nombre del site al que se quiere conectar. 
Por ejemplo, para conectar con el ya m\'{\i}tico site {\tt shoop.vpizza.com} se
puede usar el comando
\begin{tscreen}
ftp shoop.vpizza.com
\end{tscreen}

\section{Registrandose}

Cuando comienza el {\tt ftp} deber\'{\i}a verse algo como
\begin{tscreen}
Connected to shoop.vpizza.com. \\
220 Shoop.vpizza.com FTPD ready at 15 Dec 1992 08:20:42 EDT \\
Name (shoop.vpizza.com:mdw): 
\end{tscreen}

En este punto, {\tt ftp} nos est\'a pidiendo que le demos el nombre de usuario
con el que nos queremos registrar en {\tt shoop.vpizza.com}. El nombre por
defecto aqu\'{\i} es {\tt mdw}, que corresponde con mi nombre de usuario del 
sistema desde el que estoy usando el FTP. Como no tengo cuenta en {\tt
shoop.vpizza.com} no me podr\'e registrar como yo mismo. En cambio, para
acceder al software disponible publicamente en un FTP site hay que
registrarse como {\tt anonymous}, y dar la direcci\'on de e-mail Internet (si
se tiene) como password.
De modo que teclear\'{\i}amos
\begin{tscreen}
Name (shoop.vpizza.com:mdw): {\em anonymous} \\
331-Guest login ok, send e-mail address as password. \\
Password: {\em mdw@sunsite.unc.edu} \\
230- Welcome to shoop.vpizza.com. \\
230- Virtual Pizza Delivery[tm]: Download pizza in 30 cycles or less \\
230- or you get it FREE! \\
ftp> 
\end{tscreen}

Por supuesto, usted deber\'{\i}a dar su direcci\'on de e-mail en vez de la mia, y no
se reflejar\'a en pantalla mientras la est\'e escribiendo (ya que t\'ecnicamente
es un ``password'' o contrase\~na). El {\tt ftp} nos deber\'{\i}a permitir
registrarnos y ya estariamos preparados a bajarnos el software.

\section{Moviendonos dentro}
Perfecto, ya estamos dentro. Nuestro prompt es {\tt ftp>}, y el programa
{\tt ftp} est\'a a la espera de comandos. Hay unos pocos comandos b\'asicos que
deber\'{\i}a conocer.
Primero, los comandos
\begin{tscreen}
ls \cparam{fichero}
\end{tscreen}
y
\begin{tscreen}
dir \cparam{fichero}
\end{tscreen}
ambos dan un listado de ficheros (donde \cparam{fichero} es un argumento
opcional que especifica un fichero particular a listar). La diferencia es
que {\tt ls} generalmente produce un listado corto y {\tt dir} produce un
listado m\'as largo (es decir, con m\'as informaci\'on sobre los tama\~nos de los
ficheros, fechas de modificaci\'on, etc.).

El comando
\begin{tscreen}
cd \cparam{directorio}
\end{tscreen}
mover\'a al directorio dado (exactamente como el comando {\tt cd} en sistemas
UNIX o MS-DOS). Puede usar tambi\'en el comando
\begin{tscreen}
cdup
\end{tscreen}
para cambiar al directorio padre\footnote{el directorio por encima del
actual.}.

El comando 
\begin{tscreen}
help \cparam{comando}
\end{tscreen}
proporciona ayuda en el citado \cparam{comando} {\tt ftp} (como puede ser
{\tt ls} o {\tt cd}). Si no se especifica comando, {\tt ftp} listar\'a todos
los comandos disponibles.

Si tecleamos {\tt dir} en este punto, veremos un listado del directorio
inicial en el que nos encontramos.
\begin{tscreen}
ftp> {\em dir} \\
200 PORT command successful. \\
150 Opening ASCII mode data connection for /bin/ls. \\
total 1337 \\
\begin{verbatim}
dr-xr-xr-x  2 root     wheel         512 Aug 13 13:55 bin 
drwxr-xr-x  2 root     wheel         512 Aug 13 13:58 dev 
drwxr-xr-x  2 root     wheel         512 Jan 25 17:35 etc 
drwxr-xr-x 19 root     wheel        1024 Jan 27 21:39 pub 
drwxrwx-wx  4 root     ftp-admi     1024 Feb  6 22:10 uploads 
drwxr-xr-x  3 root     wheel         512 Mar 11  1992 usr 
\end{verbatim}
226 Transfer complete. \\
921 bytes received in 0.24 seconds (3.7 Kbytes/s) \\
ftp>
\end{tscreen}

Cada una de estas entradas es un directorio, no un fichero individual que nos
podamos traer (especificado por la {\tt d} de la primera columna del
listado). En la mayor\'{\i}a de los ``FTP archive sites'' (Servidores de 
FTP), el software p\'ublicamente accesible est\'a bajo el directorio {\tt 
/pub}, de modo que vamos a \'el.

\begin{tscreen}
ftp> {\em cd pub} \\
ftp> {\em dir} \\
200 PORT command successful. \\
150 ASCII data connection for /bin/ls (128.84.181.1,4525) (0 bytes). \\
total 846 \\
\begin{verbatim}
-rw-r--r--   1 root     staff        1433 Jul 12  1988 README 
-r--r--r--   1 3807     staff       15586 May 13  1991 US-DOMAIN.TXT.2 
-rw-r--r--   1 539      staff       52664 Feb 20  1991 altenergy.avail 
-r--r--r--   1 65534    65534       56456 Dec 17  1990 ataxx.tar.Z 
-rw-r--r--   1 root     other     2013041 Jul  3  1991 gesyps.tar.Z 
-rw-r--r--   1 432      staff       41831 Jan 30  1989 gnexe.arc 
-rw-rw-rw-   1 615      staff       50315 Apr 16  1992 linpack.tar.Z 
-r--r--r--   1 root     wheel       12168 Dec 25  1990 localtime.o 
-rw-r--r--   1 root     staff        7035 Aug 27  1986 manualslist.tblms 
drwxr-xr-x   2 2195     staff         512 Mar 10 00:48 mdw 
-rw-r--r--   1 root     staff        5593 Jul 19  1988 t.out.h 
\end{verbatim}
226 ASCII Transfer complete. \\
2443 bytes received in 0.35 seconds (6.8 Kbytes/s) \\
ftp> 
\end{tscreen}

Aqu\'{\i} podemos ver un n\'umero de (?`interesantes?) ficheros, uno de los 
cuales se llama {\tt README}, que deber\'{\i}amos bajarnos (la 
mayor\'{\i}a de FTP sites tienen un fichero {\tt README} en el directorio 
{\tt /pub}).

\section{Traerse ficheros}
Antes de traer ficheros, hay algunas cosas que deber\'{\i}a tener en cuenta.
\begin{itemize}
\item {\bf Conectar las marcas de progreso.} Las {\em Marcas de Progreso} se
imprimen en pantalla mientras se est\'an transfiriendo ficheros; le permitir\'an
saber como de avanzada va su transferencia, y que su conexi\'on no se ha
cortado (de modo que no est\'e sentado 20 minutos pensando que aun est\'a
trayendose un fichero). En general, una marca de progreso aparece como una
almohadilla ({\tt \#}), y se imprime una por cada 1024 o 8192 bytes
transferidos, dependiendo del sistema.

Para activar la impresi\'on de marcas de progreso, utilice el comando {\tt
hash}.
\begin{tscreen}
ftp> {\em hash} \\
Hash mark printing on (8192 bytes/hash mark). \\
ftp>
\end{tscreen}

\item {\bf Determinar el tipo de fichero que va a transferir.}
En lo que concierne al FTP, los ficheros van en dos formatos: {\em binario}
y {\em texto}. La mayor\'{\i}a de los ficheros que usted transferir\'a ser\'an
binarios: es decir, programas, ficheros comprimidos, ficheros de datos, etc.
Sin embargo, muchos ficheros (tales como {\tt README}s y dem\'as) son ficheros
de texto.

?`Por qu\'e es importante el tipo de fichero? Simplemente porque en algunos
sistemas (como el MS-DOS), ciertos caracteres de un fichero de texto, tales
como retornos de carro, necesitan convertirse de modo que los ficheros
puedan ser legibles. Mientras las transferencias en modo binario, no
realizan ninguna conversi\'on---el fichero se tranfiere byte a byte.

Los comandos {\tt bin} y {\tt ascii} ponen el modo de tranferencia en
binario y texto respectivamente. {\em Si est\'a en duda, use siempre el modo
binario para transferir ficheros}.
Si intenta tranferir un fichero binario en modo texto, obtendr\'a un fichero
corrupto que no podr\'a utilizar. (Este es uno de los fallos m\'as corrientes
cuando se usa el FTP.) Sin embargo, puede usar tranquilamente el modo texto
para ficheros de texto (aquellos cuyos nombres terminan habitualmente en
{\tt .txt}).

En nuestro ejemplo traeremos el fichero {\tt README}, que por lo general es
un fichero de texto, para lo cual usaremos el comando
\begin{tscreen}
ftp> {\em ascii} \\
200 Type set to A. \\
ftp> 
\end{tscreen}

\item {\bf Establecer el directorio local.} El {\em directorio local} es el
directorio de su sistema en el que quiere que vayan a parar los ficheros
traidos. Mientras el comando {\tt cd} cambia el directorio remoto (de la
m\'aquina remota a la que est\'a haciendo FTP), el comando {\tt lcd} cambia el
directorio local.

Por ejemplo, para cambiar el directorio local a {\tt /home/db/mdw/tmp},
utilice el siguiente comando
\begin{tscreen}
ftp> {\em lcd /home/db/mdw/tmp} \\
Local directory now /home/db/mdw/tmp \\
ftp>
\end{tscreen}
\end{itemize}

Ahora ya est\'a listo para traerse el fichero. El comando
\begin{tscreen}
get \cparam{nombre-remoto} \cparam{nombre-local}
\end{tscreen}
se usa para esto, donde \cparam{nombre-remoto} es el nombre del fichero de la
m\'aquina remota, y \cparam{nombre-local} es el nombre que le quiere dar al
fichero en su m\'aquina local. El argumento \cparam{nombre-local} es opcional;
por defecto el nombre fichero local es el mismo que el remoto. Sin embargo,
si est\'a trayendose el fichero {\tt README}, y ya tiene un {\tt README} en su
directorio local, necesitar\'a darle un \cparam{nombre-local} distinto para
que no se sobreescriba el primero.

En nuestro ejemplo, para traer el fichero {\tt README}, usamos simplemente
\begin{tscreen}
ftp> {\em get README} \\
200 PORT command successful. \\
150 ASCII data connection for README (128.84.181.1,4527) (1433 bytes). \\
\# \\
226 ASCII Transfer complete. \\
local: README remote: README \\
1493 bytes received in 0.03 seconds (49 Kbytes/s) \\
ftp>
\end{tscreen}

\section{Saliendo de FTP}
Para terminar una sesi\'on FTP, solo tiene que usar el comando
\begin{tscreen}
quit
\end{tscreen}
El comando
\begin{tscreen}
close
\end{tscreen}
se puede usar para cerrar la conexi\'on con el FTP site actual; el comando
{\tt open} se puede usar para comenzar una sesi\'on con otro site distinto
(sin salir completamente del programa FTP).
\begin{tscreen}
ftp> {\em close} \\
221 Goodbye. \\
ftp> {\em quit} 
\end{tscreen}

\section{Usando {\tt ftpmail}}
\index{ftpmail@{\tt ftpmail}}
{\tt ftpmail} es un servicio que le permite obtener ficheros de FTP sites a
trav\'es del correo electr\'onico de Internet. Si no tiene acceso directo a
Internet, pero al menos puede enviar correo a Internet (desde un servicio
como CompuServe, por ejemplo), entonces {\tt ftpmail} es un buen m\'etodo para
conseguir los ficheros de los FTP archive sites. Desafortunadamente, {\tt
ftpmail} puede ser lento, sobre todo cuando env\'{\i}a grandes trabajos. Antes de
intentar traerse gran cantidad de software usando {\tt ftpmail}, asegurese
de que su cola de correo pueda manejar el tr\'afico entrante. Muchos sistemas
ponen cuotas de correo entrante, y pueden borrar su cuenta si su correo se
excede de esta cuota. Solamente tiene que usar el sentido com\'un.

{\tt sunsite.unc.edu}, uno de los m\'as grandes FTP sites de Linux, posee un
servidor de {\tt ftpmail}. Para usar este servicio, envie un e-mail a
\begin{tscreen}
ftpmail@sunsite.unc.edu
\end{tscreen}
en cuyo cuerpo del mensaje contenga solamente la palabra:
\begin{tscreen}
help
\end{tscreen}
Esto le enviar\'a de vuelta una lista de comandos {\tt ftpmail} y un breve
tutorial de uso del sistema.

Por ejemplo, para conseguir una lista de los ficheros de Linux encontrados
en {\tt sunsite.unc.edu}, env\'{\i}e un correo a la direcci\'on mencionada y que
contenga el siguiente texto
\begin{tscreen}
open sunsite.unc.edu \\
cd /pub/Linux \\
dir \\
quit
\end{tscreen}

Podr\'a usar el servicio {\tt ftpmail} para conectar con cualquier FTP site;
no est\'a limitado a {\tt sunsite.unc.edu}. La siguiente secci\'on lista un
n\'umero de FTP sites de Linux.

\section{Lista de FTP Sites de Linux}
\index{FTP!lista de sites}
La tabla~\ref{table-ftp-sites} es una lista de los m\'as conocidos FTP sites
que mantienen software de Linux. Tenga en cuenta tambi\'en que un gran n\'umero
de otros sites son copia de estos, y muy probablemente podr\'a encontrar Linux
en un mont\'on de sites que no est\'an en esta lista.

\begin{table}[ht]\begin{center}
\small\begin{tabular}{lll} 
\hline
Nombre del Site                      &  Direcci\'on IP    & Directorio \\ 
\hline
tsx-11.mit.edu                       &  18.172.1.2      & /pub/linux \\
sunsite.unc.edu                      &  152.2.22.81     & /pub/Linux \\
nic.funet.fi                         &  128.214.6.100   & /pub/OS/Linux \\
ftp.mcc.ac.uk                        &  130.88.200.7    & /pub/linux \\
fgb1.fgb.mw.tu-muenchen.de           &  129.187.200.1   & /pub/linux \\
ftp.informatik.tu-muenchen.de        &  131.159.0.110   & /pub/Linux \\
ftp.dfv.rwth-aachen.de               &  137.226.4.105   & /pub/linux \\
ftp.informatik.rwth-aachen.de        &  137.226.112.172 & /pub/Linux \\
ftp.ibp.fr                           &  132.227.60.2    & /pub/linux \\
kirk.bu.oz.au                        &  131.244.1.1     & /pub/OS/Linux \\
ftp.uu.net                           &  137.39.1.9      & /systems/unix/linux \\
wuarchive.wustl.edu                  &  128.252.135.4   & /systems/linux \\
ftp.win.tue.nl                       &  131.155.70.100  & /pub/linux \\
ftp.ibr.cs.tu-bs.de                  &  134.169.34.15   & /pub/os/linux \\
ftp.denet.dk                         &  129.142.6.74    & /pub/OS/linux \\
\end{tabular}\normalsize\rm
\caption{Linux FTP Sites}
\label{table-ftp-sites}
\end{center}\end{table}

{\tt tsx-11.mit.edu}, {\tt sunsite.unc.edu}, y {\tt nic.funet.fi} son los
``home sites'' del software de Linux, donde se deja la mayor\'{\i}a del nuevo
software. La mayor\'{\i}a de los otros sites de la lista se hacen copia de alguna
combinaci\'on de estos tres. Para reducir el tr\'afico en la red, elija un site
que est\'e geogr\'aficamente lo m\'as cerca de usted.

\index{FTP!uso|)}
