Check the new version here

Popular channels

Tutorial: FTP desde línea de comando

Me hacía falta, encontré y me gustó, así q comparto...

Una guía rápida para usar ftp.

El programa ftp standard es el primer cliente original ftp. Viene con la mayoría de las distribuciones Linux y con el cmd de Windows. Su primera aparición fue en 4.2BSD, que fue desarrollado por la Universidad de California, Berkeley.

1. Correr el programa ftp

Es fácil usar ftp. Digamos que querés conectarte a un sitio ftp anónimo como metalab.unc.edu para bajar archivos.

En la línea de comandos, tipeá:

$ ftp metalab.unc.edu

El ftp va a tratar de conectarse a metalab.unc.edu. Otra manera es correr el comando sin parámetros, y usar el comando open, con el nombre del sitio como argumento:

$ ftp
ftp> open metalab.unc.edu

2. Loguearse a un server FTP

Cuando te conectás a un sitio FTP, te preguntará un nombre de usuario (si apretás enter, entra con el nombre de tu máquina, en el ejemplo, foo). Nos logueamos como anonymous o ftp para conseguir el archivo público:

220 helios.oit.unc.edu FTP server (Version wu-2.6.0(2) Wed Nov 17 14:44:12
EST 1999) ready.
Name (metalab.unc.edu:foo):

Ahora, usamos una dirección completa de email como password (ésto es lo que la mayoría de los sitios públicos FTP pide):

331 Guest login ok, send your complete e-mail address as password.
Password:

Después de acceder exitosamente, se nos da la siguiente información:

Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

El remote system type depende de la máquina a la que nos conectemos.

3. Tipos de transferencias de archivos

Después de entrar a un sitio ftp, ftp muestra el tipo de transferencia de archivos. En el ejemplo, es binario. El modo binario transfiere los archivos bit a bit, como están en el server ftp. El modo Ascii, sin embargo, bajará el texto directamente. Podés tipear ascii o binary para cambiar el tipo.

Digamos que queremos bajar un kernel de linux, así que para éste ejemplo nos conviene mantener el tipo de transferencia en binario. El binario es también lo que debería usarse para archivos que no son de texto -- como imágenes, archivos comprimidos (zip, rar, tar...), programas ejecutables... En caso de duda, usá el binary mode.

4. Navegar y listar directorios

Para ver la lista de archivos, usamos los comandos ls o dir. El comando se ejecuta en el server remoto, así que alguno de los dos puede no funcionar dependiendo del sistema, lo mismo que sus argumentos.

ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 33590
-r--r--r-- 1 root other 34348506 Dec 03 03:53 IAFA-LISTINGS
lrwxrwxrwx 1 root other 7 Jul 15 1997 README -> WELCOME
-rw-r--r-- 1 root other 890 Nov 15 13:11 WELCOME
dr-xr-xr-x 2 root other 512 Jul 15 1997 bin
dr-xr-xr-x 2 root other 512 Jul 15 1997 dev
dr-xr-xr-x 2 root other 512 Jul 18 1997 etc
drwxrwxrwx 11 ftp 20 4608 Nov 28 16:00 incoming
lrwxrwxrwx 1 root other 13 Jun 04 1998 ls-lR -> IAFA-LISTINGS
dr-xr-xr-x 17 root root 512 Jun 08 11:43 pub
dr-xr-xr-x 3 root other 512 Jul 15 1997 unc
dr-xr-xr-x 5 root other 512 Jul 15 1997 usr
226 Transfer complete.

Aquí vemos que el server respondió al comando ls listando los archivos con sus atributos (la primer columna son los permisos, la segunda es un link a un inodo, tercera el owner, cuarta el grupo, quinta el tamaño, sexta fecha de último acceso, séptima el nombre). Si la lista tiene demasiados archivos y el scroll no te funciona, podés usar shift+pageup y shift+pagedown para ver todo.

En archivos públicos ftp, generalmente los recursos bajables se almacenan en el directorio /pub. En éste ejemplo, yo ya sé el nombre del archivo que quiero y dónde encontrarlo, así que voy derecho al directorio /pub/Linux/kernel:

ftp> cd pub/Linux/kernel
250-README for kernel
250-
250-What you'll find here: kernel sources and patches
250-
250-
250 CWD command successful.

Los mensajes que ves, que empiezan con "250", son mensajes de información mandados por el servidor. En éste caso, el servidor ftp está configurado para automaticamente mostrar el archivo README cuando alguien accede al directorio.

5. Bajar y subir archivos

Ahora, después de volver a listar los archivos, ves que querés entrar al directorio v2.2. Entrás, listás otra vez, y encontrás el archivo que querés bajar. Es linux-2.2.13.tar.gz. Así que tipeás:

ftp> get linux-2.2.13.tar.gz
local: linux-2.2.13.tar.gz remote: linux-2.2.13.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
bytes).

El programa ftp empezó a salvar el archivo remoto linux-2.2.13.tar.gz a un archivo local con el mismo nombre, linux-2.2.13.tar.gz.

Si querías salvar tu copia local con otro nombre, por ejemplo, foo.tar.gz, podrías haberlo especificado así:

ftp> get linux-2.2.13.tar.gz foo.tar.gz
local: foo.tar.gz remote: linux-2.2.13.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
bytes).

Si querés bajar más de un archivo a la vez, tendrás que usar el mget (multiple get). Podés usar el mget con una lista separada por espacios de todos los archivos que queres bajar, o podés usar comodines. Por ejemplo:

ftp> mget linux*

bajaría todos los archivos que empezaran con la palabra 'linux'. Normalmente, el mget te va a pedir confirmación por cada archivo que bajes. Podés evitar eso usando el comando prompt antes de usar el mget.

Ahora, digamos que escribiste un programita, y querés subirlo a MetaLab para que lo incluyan en su archivo. Primero, cambiás el directorio a /incoming (la mayoría de los servers públicos ftp tienen un directorio, generalmente llamado incoming o uploads, donde los archivos pueden ser subidos), y después usarías el comando put:

ftp> cd /incoming
ftp> put foo.tar.gz
local: foo.tar.gz remote: foo.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for foo.tar.gz.
226 Transfer complete.
10257 bytes sent in 0.00316 secs (3.2e+03 Kbytes/sec)

El comando put funciona de la misma manera que el get, así que podés usar el mput para subir múltiples archivos al mismo tiempo. También podés subir un archivo local con un nombre distinto en el servidor especificando el nombre del archivo remoto y/o su ruta como argumento.

Qué pasa si el archivo foo.tar.gz no está en el directorio local actual cuando tratás de subirlo? Podés cambiar al directorio local usando el comando lcd (local change directory):

ftp> lcd /home/foo/
Local directory now /home/foo

6. Correr comandos de shell

El cliente ftp permite el uso del bang (!) para correr comandos locales. Por ejemplo, para obtener una lista de los archivos en tu directorio local actual hacés:

ftp> !ls

La manera en la que trabaja es que el ftp llama al shell (que está almacenado en la variable $SHELL), y es ese shell quien ejecuta el ls. Así que podés correr cualquier comando desde linea de comando que funcione en tu shell agregando ! a él. Nota: !cd no funciona como uno esperaría, por eso existe el lcd.

3.7 Marcas de hash y tick

No sería bueno ver el progreso de la descarga mientras lo bajás con ftp? Podés usar el comando hash para mostrar en pantalla marcas mientras bajás un archivo:

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

Como podés ver, ftp va a mostrar una leyenda por cada 1024 bytes de información bajada.

Además está la opción tick.

ftp> tick
Tick counter printing on (10240 bytes/tick increment).

This will print something to this effect as you download a file:

Bytes transferred: 11680

Fuente con más info (in english)
+3
0
0
0No comments yet