viernes, 4 de julio de 2008

Compartir ficheros AIX vs WINDOS con WinSCP

Un día entero me llevó conseguir esto... y lo realmente fácil que es.

Hasta el mes pasado estábamos descargando unos ficheros manualmente desde un servidor AIX a uno de nuestros servidores de aplicación Windows 2003. Usábamos un cliente de WinSCP y, pese a que la tarea era manual, esta rutina solo se llevaba a cabo una vez por semana.
El problema vino cuando, para un nuevo proyecto, necesitamos que los datos sean descargados para su posterior proceso todos los días y además de madrugada. El caso es que no nos apetecía descargar los ficheros a manubrio (obviamente) y el lío en si es la diferencia de formatos de almacenamiento entre un LINUX y WINDOWS, con lo que no se podía programar una tarea de transporte de ficheros a pelo. Había que transformarlos de alguna manera.
Buscando y buscando al fin volví al punto de partida (el bendito WinSCP) y su ¿lenguaje? para hacer Scritping. Gloria a eso ahora hemos diseñado un pequeño script que nos sincroniza cada día las carpetas que necesitamos. Simplemente después hay que ejecutar en un CMD el script por medio de su motor y ¡A volar!
La programación de la ejecución de terminal la podéis hacer, como por ejemplo la hemos hecho nosotros, por medio de un SQLServer y su gestor de paquetes.

El Script, simplemente abrid un bloc de notas y guardadlo como un txt normalillo:


# Para que sepa ejecutarlo en batch
option batch on
# Quitamos el alert de confirmación de movimiento
#(en un batch no tiene sentido tener confirmaciones)
option confirm off
# Conexión: Usuario:contraseña@IpServidor
open yomismo:12345@12.123.45.789
# Cambio al directorio deseado
cd /directorio/subdirectorio
# Sincronizo las carpetas deseadas
# Parte izquierda Windows, parte derecha AIX
synchronize both c:\cosas\Cosa2\ /varetisdf/cc_collectsource
# Desconecto
close
# Y salgo
exit

Tras todo esto, simplemente hacemos la llamada desde el terminal, o desde cualquier programa utilizando un shell. En este caso he puesto el script en la misma ruta que el ejecutable del WinSCP.

winscp.exe /console /script=miScript.txt

Como Siempre, espero os haya servido de ayuda y ya sabeis, si teneis alguna duda poned un comentario y se intentará exprimir un poco más nuestra experiencia.