Automatización de procesos con Scripts en Windows

6
49526

Tutorial de empleo de comandos FTP.

Actualización automática de ficheros
utilizando comandos FTP.

Autor: Ismael Caballero

 

1- INTRODUCCIÓN

Gracias a la oportunidad proporcionada por Roberto e Isaac, «www.adictosaltrabajo.com«,
a continuación pasaré a describir el proceso de realización de un script
para la actualización de ficheros empleando comandos FTP
de forma
automática y sin necesitad de ningún gestor o programa adicional.

Esta aplicación es la utilizada en mi website, www.carixma.com
para la actualización de los ficheros que lo componen.

Este ejemplo es muy útil para los siguientes
casos:

  • Si se tiene una
    estructura de varios servidores o equipos que precisan ser actualizados
    manualmente.
  • Cuando se necesita actualizar la misma información o similar de forma
    periódica.
  • Cuando hay que actualizar muchos archivos en varios
    servidores o equipos.

Con este sistema nos ahorraremos bastante tiempo
y esfuerzo, ya que como veremos, una vez configurado el
detalle de las acciones y archivos que se deben actualizar, simplemente se debe
lanzar el archivo .bat desde una consola de MS-DOS, ejecutándose el proceso de
forma automática, sin tener que abrir otros programas de gestión de archivos mediante el protocolo FTP
(Por ejemplo CuteFTP, WSFTP, AceFTP, …) ni realizar múltiples operaciones con
ellos  (abrir
conexiones, situar las carpetas, seleccionar pestañas, actualizar archivos,
eliminar archivos obsoletos, ….), procesos que requieren bastante atención y tiempo.

Este ejemplo necesita de dos archivos
relacionados, el primero será un archivo .bat, que llamaremos
«ftp.bat» el cual, además de ser el encargado de ejecutar el proceso
de actualización, contiene toda la información que se necesita para actualizar
los diferentes servidores o equipos. En este ejemplo, hemos configurado nuestro
archivo .bat para actualizar 3 equipos con la misma información que se
encuentra en otro archivo de configuración «config.ftp».

El archivo «config.ftp» contiene la
información y los comandos FTP que se van a ejecutar.

2- PREPARACIÓN DEL ENTORNO

    2.1- En el equipo local
creamos una carpeta que llamaremos «FTP».

    2.2– A continuación,
crearemos el archivo «ftp.bat«, para ello utilizaremos
cualquier editor de texto (Por ejemplo: Notepad) y copiaremos y pegaremos el
siguiente texto:

@echo off
REM Archivo de lanzamiento y configuración de los distintos servidores a actualizar

REM Autor: Ismael Caballero Méndez 
REM Fecha de Creación: 01/09/2003
REM Descripción: Sistema de actualización automática de servidores mediante comandos FTP
REM Site de Publicación: www.carixma.com

echo Inicio proceso de actualización en el Servidor 1
set ipftp=194.30.1.190
set ftploc=c:\ftp\config.ftp
ftp -n -s:%ftploc% %ipftp%>nul
echo Fichero/s subido/s a: %ipftp%

echo Inicio proceso de actualización en el Servidor 2
set ipftp=194.30.2.191
set ftploc=c:\ftp\config.ftp
ftp -n -s:%ftploc% %ipftp%>nul
echo Fichero/s subido/s a: %ipftp%

echo Inicio proceso de actualización en el Servidor 3
set ipftp=194.30.3.192
set ftploc=c:\ftp\config.ftp
ftp -n -s:%ftploc% %ipftp%>nul
echo Fichero/s subido/s a: %ipftp%

Terminaremos guardando este
archivo en la carpeta creada anteriormente con el nombre ftp.bat.

En este archivo podemos ver que se precisa la dirección IP del equipo remoto
que se desea actualizar, esta IP debe ser añadida en la variable «ipftp».

En la variable «ftploc», se indica la ruta del archivo de comandos
de ftp a ejecutar (archivo de configuración), en nuestro ejemplo se encuentra
siempre en c:\ftp\config.ftp. Si se desea utilizar varios para actualizar
distinta información, esta información será necesario modificarla.

Finalmente, con el comando ftp se ejecuta el contenido del fichero
c:\ftp\config.ftp.

Los comandos «echo», nos sirven para presentar por pantalla los
mensajes de evolución del proceso.

Como se puede apreciar viendo el código, el archivo ftp.bat estaría
preparado para actualizar 3 equipos.

    2.3– Seguidamente crearemos
el archivo «config.ftp«, para ello utilizaremos cualquier
editor de texto (Por ejemplo: Notepad) y
copiaremos
y pegaremos
el siguiente texto:

REM Archivo de comandos FTP de los ficheros a actualizar
user usrcarixma pwdcarixma
bin
prompt no
cd wwwroot\carixmaweb
mput c:\wwwroot\web\images\1.gif c:\wwwroot\web\images\2.gif c:\wwwroot\web\images\3.gif
cd ..
cd includes
mput c:\wwwroot\includes\inc1.htm c:\wwwroot\includes\inc2.htm
cd ..
cd pages
put c:\wwwroot\pages\pages1.htm
cd ..
mkdir folderprueba
cd folderprueba
mput c:\wwwroot\web\images\1.gif c:\wwwroot\web\images\2.gif c:\wwwroot\web\images\3.gif
rename 1.gif images4.gif
mput c:\wwwroot\web\images\1.gif c:\wwwroot\web\images\5.gif c:\wwwroot\web\images\6.gif
quit

Terminaremos guardando este
archivo en la carpeta creada anteriormente con el nombre config.ftp.

En este archivo, incluiremos los comandos FTP que se desean ejecutar.

A continuación adjuntamos una imagen con el listado de todos los comandos
que podemos utilizar.

En la parte inicial del código deberemos indicar el login y password de la
cuenta de ftp, en nuestro ejemplo se denominan usrcarixma y pwdcarixma,
separados por un espacio.

A continuación indicaremos mediante el comando «cd» la ruta en el
servidor remoto donde queremos se se actualicen los archivos, mediante los
comandos «mput» (actualización de múltiples ficheros) y
«put» (actualización de un sólo fichero) iremos actualizando los
archivos correspondiente. Utilizaremos el comando cd para ir moviéndonos de una
carpeta a otra de la estructura del site.

En este ejemplo además utilizamos los comandos «mkdir» y
«rename» los cuales son utilizados para crear una nueva carpeta y para
renombrar un archivo existente.

3- EJECUCIÓN DEL PROGRAMA

Para ejecutar el archivo ftp.bat podemos hacer un
doble click con el ratón desde una ventana del explorador de windows o bien
podemos abrir una consola de MS-DOS, para ello en la línea de comandos (botón
de Inicio — Ejecutar de Windows) introduciremos el término «cmd»,
ejecutándose una consola de MS-DOS.

Utilizaremos el comando «cd» hasta que
estemos en la carpeta ftp y escribiremos ftp.bat o ftp simplemente, este
inicializará el proceso de actualización de los equipos, si todo el proceso ha
funcionado correctamente se presentarán las siguientes líneas de texto.

Si todo va perfecto ya tendremos actualizado
nuestros equipos de forma rápida y sencilla.

Además este sistema tiene una gran ventaja
sobre el uso de programas de gestión de archivos, y es que
mientras los archivos se van actualizando, nosotros podemos seguir haciendo
cualquier tarea, lo cual supone una mejora en nuestra productividad, que en
algunos casos y empresas, es muy importante.

Para procesos rutinarios de actualización de
ficheros,
podemos programar en windows alguna tarea para que ejecute este archivo o
desarrollar algún aplicativo para que realice la ejecución de este proceso, para dejar el
sistema totalmente
automático. 

4- FICHEROS DE EJEMPLO

A
continuación os facilito la siguiente dirección para que os descarguéis los
archivos con los códigos de ejemplo que hemos visto en este tutorial.

http://www.carixma.com/tutoriales/files_ftp.zip

 

Espero que todo os haya ido perfecto y que
este sistema os facilite un poco la vida, a mí me ha servido para mucho, automatizando
varias tareas bastante pesadas.

Que la fuerza os acompañe…..

SOBRE EL AUTOR…

6 COMENTARIOS

  1. Tengo una empresa con 1000 usuarios de los cuales 400 tienen el buzón de outlook fuera de cuota. Sería posible automatizar con un prodeso .bat que de los 400 usarios fuera de cuota exportaran de su outlook los buzones a .pst a su disco local? para no ir uno a uno exportanto .pst

    Saludos.

  2. como bajaria o subiria multiples archivos por ejemplo tengo mi archivo baja.txt que contiene:
    usuario
    clave
    hash
    prompt
    ascii
    lcd D:\\\\juan\\\\archivos –> aqui se guardan los q bajo o subo
    cd web –> directorio desde donde baja o sube archivos
    mget hp*112011*.txt –> deseo bajar o subir multiples archivos a la vez, pero no funciona
    bye

    ahora lo ejecuto desde mi baja.bat que contiene:
    ftp -s:baja.txt 192.168.1.15
    exit

    y no baja archivos me podrian ayudar.

  3. nose x que aparecen demasiados \\\»\\\\\\\» en el comentario si solo coloco uno. parace ser error de la pagina, lo que deseo es bajar multiples archvios gracias.

  4. ya pude resolver el problemita, ahora solo me gustaria saber como bajar archivos entre las fechas indicadas dandole como parametros dos fechas. agradeceria su apoyo

  5. hola pedro perez, has dicho que has resuelto el problema pero no has publicado cómo. Y yo tengo la misma duda: ¿se puede usar mput c:\wwwroot\web\images\*.* para evitar poner mput c:\wwwroot\web\images\1.gif c:\wwwroot\web\images\2.gif c:\wwwroot\web\images\3.gif …etc?

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad