Subir el contenido de una carpeta por ftp mediante un script de Ant

1
24506

Subir el
contenido de una carpeta
por ftp

mediante un script de Ant

Si
alguna vez os habeis planteado ejecutar un script en windows que por
ftp suba el contenido de una carpeta (que puede contener ficheros y
otras carpetas), vereis que no es tarea sencilla.

En Autentia
tenemos que subir a producción los diferentes desarrollos
que
realizamos, y es muy costoso tener que abrir un cliente grafico, subir
lo desarrollado (en ocasiones se suben todos los ficheros aunque no
hayan cambiado), y hemos optado por esta opción para esta
tarea.

La
mayoria de clientes graficos de ftp para windows no nos permite
realizar tareas que sean programables (mediante el programador de
tareas), o necesitas un script para modo texto porque no tenemos
acceso al entorno gráfico.


Windows
provee una herramienta de consola llamada ftp que es un cliente de
dicho protocolo, pero que es poco útil para la tarea que queremos
realizar, dado que nuestra carpeta contiene otras carpetas, y la
tarea de ftp tiene que realizar una subida recursiva.

Ftp
tiene 2 comandos para enviar ficheros: put y mput. El primero permite
subir un único fichero, y mput permite subir varios ficheros, pero no
carpetas (con los ficheros que contengan).


Solucionaremos
esta problemática de manera muy sencilla.


Realizaremos
un pequeño script de Ant (
http://ant.apache.org/),
y para ello hay que descargarse dicho programa (para configurarlo y
aprender un poco qué es Ant mirar aquí
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=ant).

Ant
necesita para funcionar de una máquina virtual de java, asi que
necesitaremos instalar tambien al menos la jre de java
(
http://java.sun.com).

Una
vez instaladas y configuradas estas herramientas, vamos a proceder a
terminar de configurar Ant, puesto que ant funciona mediante ‘tareas’
(tasks), y las tarea de ftp que utilizaremos aquí necesita
unas librerias especiales.

Leyendo
la documentación de Ant apreciamos que necesitamos las
siguientes librerias:


jakarta-oro-2.0.7.jar (
http://jakarta.apache.org/oro/)


commons-net.jar
(
http://jakarta.apache.org/commons/net/index.html)

Una
vez descargados ambos jar los metemos dentro de la carpeta lib de Ant
(situada en %ANT_HOME%\lib).

Comprobamos
que tenemos ambos jar en nuestra carpeta lib de Ant:

Ahora
generamos un archivo al que llamaremos ftp-upload.xml
con el siguiente contenido:

No
merece la pena explicar ninguna de las líneas del anterior script
dada su sencillez, salvo esta opcion:

depends=»yes»

depends
nos indica si queremos realizar subidas al servidor sólo de
nuevos ficheros o ficheros que han cambiado respecto a los que hay en
el servidor ftp (poniendolo a yes), o
que suba todos los ficheros, independientemente si han cambiado o no
(poniendolo a no).

Creamos
otro fichero (donde guardaremos las propiedades del script), llamado
ftp-upload.properties
como sigue:

(También
podeis descargaros ambos ficheros desde aquí).

Si
ejecutamos en una consola el siguiente comando, ejecutaremos el
script creado en los pasos anteriores:

ant
-f ftp-upload.xml

Obtendremos
el siguiente resultado, si todo va bien:


(El resultado nos indica que se han enviado 0 archivos puesto que
tenemos a yes
 el campo depends
anteriormente comentado, y en los ficheros no había ninguna cambio
realizado).

1 Comentario

Dejar respuesta

Please enter your comment!
Please enter your name here