FTP. Automatizar tranferencias en iSeries

4 Flares Twitter 2 Facebook 0 LinkedIn 0 Google+ 2 4 Flares ×

Cuando tenemos tranferencias de archivos repetitivas mediante FTP, existe en el iSeries una manera bastante sencilla de automatizarlas de manera que haciendo una simple llamada a un programa CL podemos realizar la transferencia (o cualquier otra instrucción).

Mandato_FTP

Para ello debemos definir 2 miembros de archivo de texto que utilizaremos, uno como entrada de mandatos a realizar, y un segundo como fichero de salida donde se archivarán todos los mensajes que el sistema vaya dejando conforme ejecuta las instrucciones indicadas.

Pero veamoslo más claro con un ejemplo.

Imaginemos que todos los días queremos enviar un fichero a un sistema remoto. en este caso es otro iSeries, pero no tiene porqué ser así. Es equivalente para cualquier servidor FTP.

Pues bien, crearemos, dentro de un archivo fuente del iSeries un miembro del tipo TXT donde indicaremos paso a paso que queremos que el servidor vaya ejecutando, por ejemplo en miembro INFTP del archivo QTXTFTP….

open sistema_remoto
user nombre password
bin
quote rcmd clrsavf file(csqvr/jbc)
put csqvr/jbc csqvr/jbc
quit

Lo primero que debemos hacer es conectarnos al sistema remoto mediante la instrucción open seguida del nombre o la ip del sistema, y seguidamente debemos indicar el usuario y la password con la que conectarnos al sistema con la instrucción user.

Una vez conectados ya podemos indicarle todas las instrucciones que deseemos que realice, en este caso, queremos que cambie a transferencias binarias ya que el destino es otro iSeries mediante la instrucción bin, luego le indicamos con la palabra clave quote que queremos ejecutar un mandato del sistema que en este caso es que borre el archivo en cuestión del sistema destino. A partir de ahí enviamos el archivo con un put y hacemos un quit para finalizar. No entraré en detalles de las instrucciones FTP, ya que estamos hablando de como automatizarlas.

Una vez creado el fichero de entrada, hacemos lo mismo con el de salida, por ejemplo OUTFTP, pero este lo dejamos en blanco ya que aquí es el servidor FTP el que escribe los resultados.

Bien, pues ya sólo nos queda decir al FTP que ejecute el fichero INFTP y deje el resultado en OUTFTP.

Para ello basta con cambiar mediante los parametros OVRDBF el archivo INPUT y OUTPUT del trabajo FTP y ejecutar el mandato FTP indicando un servidor cualquiera, ya que la primera instrucción cambia la conexión al sistema remoto.

OVRDBF FILE(INPUT)  TOFILE(CSQVRSRC/QFTPTXT) MBR(INFTP)
OVRDBF FILE(OUTPUT) TOFILE(CSQVRSRC/QFTPTXT) MBR(OUTFTP)
FTP RMTSYS(Sistema)

Con estas 3 instrucciones le decimos al sistema que utilice el miembro INFTP del archivo QFTPTXT de la biblioteca CSQVRSRC como entrada y el miembro OUTFTP del mismo archivo como salida y que ejecute el mandato FTP.

El resultado de estas instrucciones es el envío del fichero jbc de la biblioteca csqvr de un sistema a otro y en el miembro OUTFTP nos dejará algo similar a esto…

Se ha redirigido la salida a un archivo.
Lectura de entrada del archivo de la alteración temporal especificado.
Conectando con el sistema principal sistema en la dirección 111.111.111.111
220-QTCP at sistema.
220 Connection will close if idle more than 5 minutes.
Entre el ID de inicio de sesión (user):
331 Enter password.
530 Log on attempt by user OPEN rejected.
Entre un submandato FTP.
> user usuario ********
331 Enter password.
230 usuario logged on.
OS/400 is the remote operating system. The TCP/IP version is "V7R1M0".
250 Now using naming format "0".
257 "QGPL" is current library.
Entre un submandato FTP.
> bin
200 Representation type is binary IMAGE.
Entre un submandato FTP.
> quote rcmd clrsavf file(csqvr/jbc)
250 Command clrsavf file(csqvr/jbc) successful.
Entre un submandato FTP.
> put csqvr/jbc csqvr/jbc
229 Entering Extended Passive Mode (|||32927|).
150 Sending file to member JBC in file JBC in library CSQVR.
226 File transfer completed successfully.
573408 bytes transferidos en 1,981 segundos. Velocidad de transferencia
Entre un submandato FTP.
> quit
221 QUIT subcommand received.

JoBenCa

http://jobenca.es

Administrador y desarrollador de sistemas IBM System i y curioso de todo tipo de tecnología.

View more posts from this author
3 thoughts on “FTP. Automatizar tranferencias en iSeries
    1. JoBenCa

      Hola, si quieres explicarme que problema te da tal vez pueda ayudarte. A mi me funciona perfectamente. Tengo varios procesos de carga y descarga automatizados.

       
      Reply

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

4 Flares Twitter 2 Facebook 0 LinkedIn 0 Google+ 2 4 Flares ×