Documente Academic
Documente Profesional
Documente Cultură
COMANDOS DE SERVICIO
RETR (Recuperar)
Hace que el server-DTP transfiera una copia del fichero especificado en el
nombre de ruta
STOR (Almacenar)
Hace que el servidor lea los datos transferidos por la conexión de datos y los
guarde en un fichero en el servidor. Si el fichero especificado en el nombre de
ruta existe en el servidor, su contenido se debe reemplazar con los datos
recibidos. Se crea un fichero nuevo en el servidor si el indicado no existía ya.
STOU (Almacenamiento Unico
Igual que STOR sólo que el fichero resultante se crea en el directorio actual con
un nombre único para ese directorio
APPE (Añadir)
Si el fichero especificado en el nombre de ruta existe, los datos se añaden a ese
fichero; si no, se crea un fichero nuevo en el servidor
ALLO (Solicitar espacio)
Reserva suficiente espacio de almacenamiento en el servidor para recibir el
nuevo fichero. A continueción de esta orden se deberá indicar una orden STOR
o APPE
REST (Recomenzar)
El argumento representa un marcador del servidor a partir del cual debe
recomenzar la transferencia. La orden no realiza la transferencia del fichero,
pero hace que el puntero de lectura o escritura del fichero se sitúe a
continuación del punto indicado. A continuación de esta orden se debe enviar la
orden de servicio FTP apropiada que hará que continúe la transferencia del
fichero
RNFR (Renombrar de)
indica el fichero que queremos cambiar de nombre en el servidor
RNTO (Renombrar a)
especifica el nuevo nombre para el fichero indicado mediante el comando RNFR.
Las dos órdenes seguidas hacen que el fichero cambie de nombre
ABOR (abortar)
pide al servidor que interrumpa la orden de servicio FTP previa y cualquier
transferencia de datos asociada. Hay dos posibles casos para el servidor al
recibir esta orden: (1) la orden de servicio FTP está ya terminada, o (2) aún
está en ejecución. En el primer caso, el servidor cierra la conexión de datos (si
está abierta) y devuelve una respuesta 226 indicando que la orden de
interrumpir se ha procesado correctamente. En el segundo caso, el servidor
interrumpe el servicio FTP en proceso y cierra la conexión de datos, devolviendo
una respuesta 426 para indicar que la solicitud de servicio terminó
anormalmente. Luego, el servidor envía una respuesta 226 para indicar que la
orden de interrumpir se ha procesado correctamente.
DELE (Borrar)
borra en el servidor el fichero indicado en el nombre de ruta
RMD (Borrar directorio)
borra en el servidor el directorio indicado
MKD
Borra el directorio del servidor especificado
PWD
Muestra el directorio de trabajo del servidor
LIST
envia una listado de los ficheros a través del proceso de transferencia de datos
pasivo. Si el nombre de ruta u otra agrupación de ficheros, el servidor debe
transferir una lista de los ficheros en el directorio indicado. Si el nombre de ruta
especifica un fichero, el servidor debería enviar información sobre el fichero. Si
no se indica argumento alguno, implica que se quiere listar el directorio de
trabajo actual o directorio por defecto
NLST (Listar nombres)
Envia listado de directorio desde el servidor. El nombre de ruta indica un
directorio u otra agrupación de ficheros específica del sistema; si no hay
argumento, se asume el directorio actual
SITE (Parametros del sistema)
Proporciona servicios específicos propios del sistema del servidor que son
fundamentales para transferir ficheros pero no lo suficientemente universales
como para ser incluídos como órdenes en el protocolo
SYST
devuelve el tipo de sistema operativo del servidor
STAT
el servidor devolverá información general del estado del proceso servidor FTP
HELP
el servidor envia información sobre la implementación del FTP
NOOP (No operacion)
No hace nada más que provocar que el servidor envíe una respuesta OK
Introducción al ftp
El protocolo ftp es el que utilizamos para descargar archivos de la red, o subirlos desde
nuestro ordenador.
Hoy en dia todos hemos descargado algun archivo usando las utilidades incorporadas
al propio navegador. Basta sustituir la url http:// ... por el protocolo correcto:
ftp:// .... Puedes incluso acceder a sitios de ftp no anónimo escribiendo en tu
navegador ftp://nombreusuario:contraseña@direccionftp.
En este manual, sin embargo, vamos a echar un vistazo a la forma de trabajar con ftp
en modo consola, con comandos de texto.
¿que para qué? pues para saber como funciona, claro. Y porque necesitaremos
probablemente este conocimiento si algun dia necesitamos 'ftpear' en serio.
¿que necesito?
Para esta primera toma de contacto con el ftp, usaremos lo que la mayoria tenemos a
mano: el programa ftp que viene incluido en las distribuciones de windows. Ya sabes.
Inicias una sesión DOS (inicio, programas, MS-DOS) y a teclear ...
primeros pasos
Para iniciar una sesión ftp necesitamos establecer una conexión con el ordenador
servidor, que es el que maneja el espacio donde estan los archivos que queremos
bajar (o a donde queremos subir los nuestros).
Esta conexión tendrá lugar a través del puerto 21 de nuestro ordenador. Tenemos dos
formas de iniciar la conexión:
En cualquiera de los dos casos Sabremos que hemos conectado porque vemos un
mensaje de bienvenida. En el ejemplo anterior:
C:WINDOWS>ftp ftp.microsoft.com
Conectado a ftp.microsoft.com.
220 cpmsftftpa03 Microsoft FTP Service (Version 5.0).
Usuario (ftp.microsoft.com:(none)): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Contraseña:******
230-This is FTP.MICROSOFT.COM. Please see the
230-dirmap.txt for more information.
230 Anonymous user logged in.
ftp> _
Vamos a ver que es todo esto. Lo que esta escrito en negrita corresponde a lo que
hemos escrito nosotros. El resto es la respuesta del servidor:
Bien, ya hemos entrado. En este caso el servidor nos informa donde podemos
encontrar un archivo con instrucciones (los tipicos leeme o README), y de nuestro
nombre de usuario (anonymous)
Para saber que comandos tenemos a nuestra disposición, simplemente escribimos help
o abreviado, la interrogación ?.
Esta es la respuesta a nuestra petición de ayuda:
ftp> ?
Los comandos se pueden abreviar. Comandos:
Ten en cuenta que estos son los comandos que en principio nos ofrece nuestro
programa. Dependiendo de los privilegios con los que hayamos entrado,
podremos hacer mas o menos cosas, es decir, tendremos mas o menos
comandos a nuestra disposición, pues es logico, no podemos hacer lo mismo en
un servidor público que, por ejemplo, en un servidor ftp de nuestra web. Y lo
normal es que el servidor disponga de otros comandos adicionales
listando directorios
El comando ls (LS) nos sirve para obtener un listado de los archivos del servidor, en
formato legible, con una serie de información accesoria.
Sintaxis:
ls [Directorio_remoto] [Archivo_local]
Donde directorio remoto es aquel del que deseamos obtener el listado de archivos. Si
no se especifica, se usa el directorio actual. Archivo_local especifica un archivo donde
debe guardarse el resultado de la consulta. Si no se indica archivo local, se muestra en
pantalla.
Opciones principales
Listado extenso
ls -l
Una salida típica te mostrará los permisos de acceso al fichero, número de links hacia
el mismo, usuario propietario, tamaño, ultima modificación y nombre
Archivos ocultos
Para mostrar tambien archivos ocultos (cuyo nombre empieza típicamente con un
punto) usa el parámetro -a
Parámetro Acción
-a lista también archivos ocultos
-A lista archivos ocultos (excluyendo . y .. implicitos)
-d lista el nombre del actual directorio
-F muestra directorios con una '/' final
ejecutables con un '*'
-g muestra el propietario
-i muestra el numero inode de cada archivo
-l listado con detalles
-R lista subdirectorios y su contenido
-t muestra ordenado por fecha de modificación en lugar
de por nombre
-r orden inverso
-C ordena por columnas (solo nombre)
Comandos básicos
En la página anterior vimos los comandos para conectar con un servidor ftp (c:/ftp
ftp.nombredeservidor.* o bien desde dentro del programa, ftp> open
ftp.elservidor.*), y la necesidad de introducir nombre de usuario y contraseña;
también vimos como ver los comandos de ayuda disponibles en nuestro sistema (? o
bien help, pudiendo pedir ayuda sobre comandos específicos: ? comando, o help
comando)
C:>ftp ftp.nexen.net
Conectado a sauterne.nexen.net.
220 ProFTPD 1.2.0pre10 Server (Sauterne) [sauterne.nexen.net]
Usuario (sauterne.nexen.net:(none)): minombre
331 Password required for minombre.
Contraseña:************
230 User minombre logged in.
ftp>
Lo primero que hacemos es ver donde estamos. Para eso usamos el comando pwd:
ftp> pwd
257 '/' is current directory.
ftp>
A continuación, lo lógico es que queramos ver que tenemos a nuestro alrededor. Para
obtener la lista de archivos y directorios, usamos el comando ls:
utilidades
varios
xhtml
blank.html
canciones.js
entrada.html
entradanoframes.htm
estilo.css
estilo2.css
favicon.ico
nu43
innet
phpinfo.php
online.htm
preload.html
scriptind.js
cal
phorum-3.2.1
xml
extensions.php
404.html
226-Transfer complete.
226 Quotas off
ftp: 361 bytes received in 0.06Segundos 6.02KB/s.
ftp>
¿que ha pasado? hay tantos directorios y archivos que ocupan toda la pantalla. Ya
sabemos que aqui no hay scroll. Para ver todos los archivos y directorios
cómodamente, usamos la misma orden, con un modificador:
ls -C:
ftp> ls -C
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
404.html favicon.ico preload.html
blank.html html scriptind.js
cal images servidor
cal.htm index.php smil
canciones innet trucos
canciones.js manualcss tutoriales
dump-mysql musica utilidades
entrada.html mysql varios
entradanoframes.htm nu43 xhtml
estilo.css online.htm xml
estilo2.css phorum-3.2.1
extensions.php phpinfo.php
226-Transfer complete.
226 Quotas off
ftp: 368 bytes received in 0.06Segundos 6.13KB/s.
ftp>
ftp> lcd ..
Directorio local ahora C:.
ftp> lcd temp
Directorio local ahora C:temp.
ftp>
Vemos como con lcd.. (local change directory) subimos en el arbol de directorios de
nuestra máquina (de c:/windows a c:) y luego con lcd temp pasamos al directorio
c:temp.
Bueno, bajamos nuestro primer archivo con la orden get:
ftp> binary
200 Type set to I.
ftp> asc
200 Type set to A.
ftp> bin
200 Type set to I.
Donde vemos que pasamos a modo binario (modo I) luego a ASCII (modo A) y
nuevamente a binario.
ftp> put README-faq
200 PORT command successful.
150 Opening ASCII mode data connection for README-faq.
226 Transfer complete.
ftp: 2339 bytes sent in 0.05Segundos 46.78KB/s.
ftp>
ftp> ls -C
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
404.html extensions.php phpinfo.php
README-faq favicon.ico preload.html
blank.html html scriptind.js
...
Y ahi lo tenemos.
Recordamos que comandos hemos visto:
Como verás, el programa presume que sabemos lo que estamos haciendo, y no nos
pregunta confirmación. Asi que mas vale andar con cuidado !
Una de las dudas mas habituales cuando nos enfrentamos a la instalación de scripts
(perl, php) es la asignación de los permisos correspondientes. Las preguntas sobre
CHMOD suelen ser las mas habituales en todos los foros que se dedican a estos temas.
En este artículo abordaremos que son los permisos, para que sirven, y como
asignarlos.
CHMOD ("Change mode") es un comando UNIX que permite cambiar los permisos de
acceso de un archivo. Cada archivo tiene nueve clases de acceso, que pueden ser
permitidas o denegadas. Se pueden aplicar diferentes permisos al dueño del fichero,
al grupo al que el fichero pertenece y al resto de usuarios. Cada una de estas tres
clases de usuarios (dueño, grupo, resto de usuarios) puede tener permisos de lectura,
escritura y ejecución
Al instalar cualquier archivo en una página web, podemos definir sus propiedades, para
determinar en que forma será accesible para los visitantes de la página.
Estas propiedades son lo que llamamos permisos y segun cuales asignemos a cada
archivo este será solo de lectura, de escritura o ejecutable, o cualquier combinación de
los tres.
Piensa por ejemplo en una página de html sencilla, respecto de la cual solo nos
interesa garantizar que todo el mundo pueda verla pero no modificarla; el archivo que
contiene esa página necesita unicamente permisos de lectura, pero no de ejecución ni
de escritura. Por contra, si se trata de un script, necesitará probablemente permisos de
lectura y de ejecución, etc.
La orden CHMOD
Los servidores Windows tienen su propio sistema de permisos, en los que no vamos a
entrar aqui.
El sistema operativo UNIX esta diseñado para ser multiusuario. Por ello UNIX permite
tres niveles de acceso a los archivos, para tres categorias diferentes de usuarios:
owner (propietario) La persona que el sistema reconoce como dueño del archivo.
Group (grupo): Conjunto de usuarios con permisos similares. Muy usado en entornos
de trabajo, es de escasa aplicación en páginas web.
Y tratándose de directorios:
Advierte que tenemos TRES categorias de usuarios ("user," "group," y "other") y para
categoria pueden asignarse TRES tipos de permisos: "r," "w," y "x".
Fijando permisos
La orden chmod puede usarse con letras o numeros. La forma mas corriente es
expresar los permisos numericamente. Seguro que lo has visto por ahi, chmod 777 etc
...
Para comprender el significado tienes que tener en cuenta que convencionalmente 4
significa permiso de lectura. 2 permiso de escritura y 1 permiso de ejecución.
Sumando estos valores vemos que un archivo puede tener los siguientes permisos (por
cada tipo de usuario):
4= lectura
2= escritura
1= ejecución
Asi, un chmod file 777 significa que owner, group y others tienen permiso de lectura,
escritura y ejecución. chmod 766 significa que el owner tiene permiso de lectura,
escritura y ejecución, y el group y others permiso de lectura y escritura. Chmod 744
significa que el owner tiene permisos de lectura, escritura y ejecución, y group y
others unicamente permisos de lectura.
Como ves, son tres digitos, de izquierda a derecha designan los permisos del owner,
group y others.
rw-r--r--
significa que el owner tiene permisos de lectura y escritura (rw-); el group permisos de
lectura unicamente (r--) y other, permiso de lectura (r--). ¿como seria el equivamente
numerico? sería chmod 644.
Donde [u=user, g=group y o=other]; [+/- activa o desactiva los atributos siguientes]
[r=read, w=write, x=execute]
Por ejemplo, chmod go+r index.php significa que asignamos permisos de lectura para
group y others en index.php
De esta forma solo cambiamos los atributos que especificamos, pero no alteramos
otros compatibles que pudieran estar asignados anteriormente) por ejemplo, no
modifica la atribucion anterior a group de un permiso de ejecución).
Chmod
Permission Owner Group Other
Read
Write
Execute
Este apartado se mantiene como simple ejemplo. Las ultimas versiones de php-nuke
NO precisan permisos de archivo especiales.
"... In order to use the File Manager, please be sure to chmod 666 ALL files and 777
ALL directories.
4) Also, to activate Headlines you "need" to chmod 777 the "cache" directory,
otherwise headlines won't work.
....
NOTE: If you want to edit config.php file from web browser remember to chmod 666
the file config.php or your changes will not be saved! If can't execute chmod just edit
the file by hand and re-upload it to your server".
Bueno, aqui nos están diciendo que si queremos utilizar el "administrador de archivos"
hay que asignar permisos 666 a todos los archivos, es decir, ya sabemos, permisos de
lectura y escritura para TODOS los usuarios (owner, group, other) y 777 a todos los
directorios (permiso para listar archivos, subir archivos, acceder archivos en el
directorio, a los tres grupos de usuarios).
Para activar las headlines chmod 777 el directorio cache: listar archivos, subir
archivos, acceder archivos en el directorio, a los tres grupos de usuarios.
Para modificar las preferencias de nuestra página via web (a traves de admin.php)
debemos asignar a config.php permiso 666, es decir, permisos de lectura y escritura.
De otra forma, si no tiene permisos de escritura, no se guardaran los cambios.
CuteFTP: click derecho sobre el archivo o carpeta y elegir "Change file attributes" del
menu emergente. Para ver los permisos en la ventana, click derecho sobre la ventana
y elegir "Long listing".
COMANDOS DE SERVICIO
RETR (Recuperar)
Hace que el server-DTP transfiera una copia del fichero especificado en el
nombre de ruta
STOR (Almacenar)
Hace que el servidor lea los datos transferidos por la conexión de datos y los
guarde en un fichero en el servidor. Si el fichero especificado en el nombre de
ruta existe en el servidor, su contenido se debe reemplazar con los datos
recibidos. Se crea un fichero nuevo en el servidor si el indicado no existía ya.
STOU (Almacenamiento Unico
Igual que STOR sólo que el fichero resultante se crea en el directorio actual con
un nombre único para ese directorio
APPE (Añadir)
Si el fichero especificado en el nombre de ruta existe, los datos se añaden a ese
fichero; si no, se crea un fichero nuevo en el servidor
ALLO (Solicitar espacio)
Reserva suficiente espacio de almacenamiento en el servidor para recibir el
nuevo fichero. A continueción de esta orden se deberá indicar una orden STOR
o APPE
REST (Recomenzar)
El argumento representa un marcador del servidor a partir del cual debe
recomenzar la transferencia. La orden no realiza la transferencia del fichero,
pero hace que el puntero de lectura o escritura del fichero se sitúe a
continuación del punto indicado. A continuación de esta orden se debe enviar la
orden de servicio FTP apropiada que hará que continúe la transferencia del
fichero
RNFR (Renombrar de)
indica el fichero que queremos cambiar de nombre en el servidor
RNTO (Renombrar a)
especifica el nuevo nombre para el fichero indicado mediante el comando RNFR.
Las dos órdenes seguidas hacen que el fichero cambie de nombre
ABOR (abortar)
pide al servidor que interrumpa la orden de servicio FTP previa y cualquier
transferencia de datos asociada. Hay dos posibles casos para el servidor al
recibir esta orden: (1) la orden de servicio FTP está ya terminada, o (2) aún
está en ejecución. En el primer caso, el servidor cierra la conexión de datos (si
está abierta) y devuelve una respuesta 226 indicando que la orden de
interrumpir se ha procesado correctamente. En el segundo caso, el servidor
interrumpe el servicio FTP en proceso y cierra la conexión de datos, devolviendo
una respuesta 426 para indicar que la solicitud de servicio terminó
anormalmente. Luego, el servidor envía una respuesta 226 para indicar que la
orden de interrumpir se ha procesado correctamente.
DELE (Borrar)
borra en el servidor el fichero indicado en el nombre de ruta
RMD (Borrar directorio)
borra en el servidor el directorio indicado
MKD
Borra el directorio del servidor especificado
PWD
Muestra el directorio de trabajo del servidor
LIST
envia una listado de los ficheros a través del proceso de transferencia de datos
pasivo. Si el nombre de ruta u otra agrupación de ficheros, el servidor debe
transferir una lista de los ficheros en el directorio indicado. Si el nombre de ruta
especifica un fichero, el servidor debería enviar información sobre el fichero. Si
no se indica argumento alguno, implica que se quiere listar el directorio de
trabajo actual o directorio por defecto
NLST (Listar nombres)
Envia listado de directorio desde el servidor. El nombre de ruta indica un
directorio u otra agrupación de ficheros específica del sistema; si no hay
argumento, se asume el directorio actual
SITE (Parametros del sistema)
Proporciona servicios específicos propios del sistema del servidor que son
fundamentales para transferir ficheros pero no lo suficientemente universales
como para ser incluídos como órdenes en el protocolo
SYST
devuelve el tipo de sistema operativo del servidor
STAT
el servidor devolverá información general del estado del proceso servidor FTP
HELP
el servidor envia información sobre la implementación del FTP
NOOP (No operacion)
No hace nada más que provocar que el servidor envíe una respuesta OK
PASSIVE MODE
Uno de los términos que se suelen oir cuando se habla de problemas con el ftp es el de
passive mode. Aqui vamos a ver de que se trata, y por que es la solución a muchos
problemas de conectividad
Una conexión ftp usa dos puertos, abre dos canales: Uno será el puerto de comandos,
command port o control port (normalmente puerto 21) por donde se transfieren las
órdenes. El otro es el puerto de datos (data port) que es por donde circulan los datos
que integran los ficheros (normalmente el puerto 20, pero puede ser cualquiera por
debajo del 1024)
modo activo
Cuando usamos ftp en modo activo (tambien considerado modo normal) se establecen
dos conexiones distintas. El primer lugar se establece una conexión para la transmisión
de comandos (desde cualquier puerto de nuestro ordenador inferior a 1024 hacia el
puerto 21 del server) y por esa misma conexion, mediante un comando PORT se indica
al server cual es el puerto (distinto) de nuestro ordenador que está a la escucha de los
datos.
A modo de resumen podemos decir que en modo pasivo las conexiones son siempre
abiertas por el pc cliente, mientras que en modo pasivo se abren por el que envia los
datos (el server si se trata de bajar archivos al pc local, el cliente si se trata de subir
archivos al server).
Como hemos visto, en el modo activo se abre una conexión para datos desde el server
a la maquina cliente, esto es, una conexión de fuera a dentro.
Entonces, si la maquina cliente está protegida por un firewall, este filtra o bloquea la
conexión entrante, al serle un proceso desconocido.
En modo pasivo es el cliente el que inicia ambas conexiones, de control y de datos, con
lo cual el firewall no tiene ninguna conexion entrante que filtrar
Lamentablemente la utilidad de ftp que viene por defecto con windows 95/98 y que
puedes usar en línea de comandos, no dispone de modo pasivo.
Por ello si tienes problemas de conexion y sospechas que es por un firewall, deberás
buscar un programa cliente ftp que disponga de esta posibilidad (la inmensa mayoria).
Como ves el server reacciona al comando PASV entrando en modo pasivo e indicando
una serie de numeros (entre parentesis la segunda linea). Los cuatro primeros bloques
de números se corresponden con la IP del servidor. Los dos números restantes son el
puerto que el server abre a la escucha para el canal de datos
El puerto esta indicado mediante dos numeros de 8 bits; traducido a número de 16 bits
obtenemos el numero "real"
Las respuestas de un servidor ftp vienen identificadas por un código de tres números.
Este código está pensado para asegurar la sincronización entre peticiones y acciones
en el proceso de transferencia de ficheros y para garantizar que el proceso de usuario
siempre conoce el estado del servidor. Cada orden debe generar por lo menos una
respuesta, aunque puede haber más de una.
Una respuesta FTP consiste en un número de tres cifras seguidos de texto explicativo.
El número contiene suficiente información como para que el programa del usuario no
necesite examinar el texto, y puede o bien descartarlo o bien mostrarlo.El texto puede
depender del servidor y, por tanto, puede variar en cada código de respuesta.
*5* Sistema de ficheros. Estas respuestas indican el estado del sistema de ficheros en el
servidor según se realizan transferencias u otras acciones sobre el sistema de
ficheros.
110
Respuesta al marcador de reinicio. En este caso, el texto debe ser: MARK yyyy =
mmmm Donde yyyy es el marcador del flujo de datos en el proceso de usuario y
mmmm es el equivalente en el servidor.
120
El servicio estará en funcionamiento en nnn minutos.
125
La conexión de datos ya está abierta; comenzando transferencia.
150
Conexion abierta.
200
OK (Orden correcta).
202
Orden no implementada, no necesaria en este sistema.
211
Estado del sistema o respuesta de ayuda del sistema.
212
Estado del directorio.
213
Estado del fichero.
214
Mensaje de ayuda. Sobre como usar el servidor o el significado de una orden
particular no estándar.
215
identificación del tipo de sistema.
220
Servicio preparado para nuevo usuario.
221
Cerrando la conexión de control. Desconectado si procede.
225
Conexión de datos abierta; no hay transferencia en proceso.
226
Cerrando la conexión de datos. La acción sobre fichero requerida ha sido correcta
(por ejemplo, una transferencia o interrupción).
227
Iniciando modo pasivo.
230
Usuario conectado, continúe.
250
La acción sobre fichero solicitado finalizó correctamente.
257
"path" creado.
331
Usuario OK, necesita contraseña.
332
Necesita nombre de cuenta.
350
La acción requiere más información. Pendiente
421
Servicio no disponible, cerrando la conexión de control. Esta puede ser la respuesta
a cualquier comando si el servidor sabe que debe finalizar.
425
No se puede abrir la conexión de datos.
426
Conexión cerrada; transferencia interrumpida.
450
Acción no realizada. Fichero no disponible (por ejemplo, fichero bloqueado).
451
Acción interrumpida. Error local.
452
Acción no realizada. Falta de espacio en el sistema de ficheros.
500
Error de sintaxis, comando no reconocido. Esto puede incluir errores como línea de
orden demasiado larga.
501
Error de sintaxis en parámetros o argumentos.
502
Orden no implementada.
503
Secuencia de órdenes incorrecta.
504
Parámetro incorrecto para esa orden.
530
No está conectado.
532
Necesita una cuenta para almacenar ficheros.
550
Acción no realizada, Fichero no disponible (por ejemplo, fichero no existe, no se
tiene acceso al mismo).
551
Acción interrumpida. Tipo de página desconocido.
552
Acción interrumpida. Se ha sobrepasado el espacio disponible de almacenamiento
(para el directorio actual).
553
Acción no realizada. Nombre de fichero no permitido.
FTP switches
La utilidad ftp de linea de comandos que traen los sistemas operativos de microsoft
permite una serie de switches o modificadores. Esta es su sintaxis completa:
FTP automático
Podemos hacer uso del switch -s y de un archivo bat para automatizar las tareas ftp
mas repetitivas. Vamos a ver un ejemplo muy sencillo. Supongamos que necesitamos
descargar frecuentemente de nuestro servidor un archivo (miarchivo.txt) y guardarlo
en c: Mis Documentos. Necesitaremos dos archivos:
Al ejecutar este archivo bat, automáticamente se lanza la utilidad ftp del sistema; el
switch -s indica que ejecute los comandos que encontrará en el fichero
C:\batch\inst.txt y que conecte con el servidor ftp ftp.server.com.
Este archivo lo guardamos con la extensión bat en un directorio que esté en el path de
windows.
2.- El archivo .txt será el que contenga las instrucciones o comandos FTP. En este
caso lo llamamos inst.txt, aunque puede tener cualquier nombre o extensión:
nombre_usuario
contraseña
lcd ..
lcd "Mis Documentos"
cd /www/main/include
pwd
ascii
get miarchivo.txt
quit
Las dos primeras lineas son nuestro nombre de usuario en el server ftp y nuestra
contraseña.
Las instrucciones lcd las usamos para especificar que la descarga de archivos será al
directorio local c:\mis documentos. Con cd /directorio/subdirectorio/ navegamos
al directorio del server donde queremos trabajar. Mediante ascii especificamos el
modo de transferencia, y con get ordenamos la descarga. Quit para cerrar la conexión.
Al ejecutar nuestro archivo bat, se abrirá una ventana DOS con este resultado:
@ECHO OFF
:: Comprobar si hay contraseña
IF "%1"=="" GOTO Ayuda
:: crear un archivo temporal llamado script.ftp
:: el signo > y >> es para canalizar el texto.
> script.ftp ECHO nombreusuario
>>script.ftp ECHO %1
>>script.ftp ECHO lcd ..
>>script.ftp ECHO lcd c:\"mis documentos"
>>script.ftp ECHO cd /www/main/include
>>script.ftp ECHO pwd
>>script.ftp ECHO ascii
>>script.ftp ECHO get miarchivo.txt
>>script.ftp ECHO quit
:: Usamos el archivo recien creado:
FTP -s:script.ftp ftp.server.com
:: sobreescribimos el fichero temporal y lo borramos
TYPE NUL >script.ftp
DEL script.ftp
GOTO End
:Ayuda
ECHO Uso: %0 password
:End