Saltar al contenido

Creación y Configuración de Secuencias de Comandos Winscp para Transferir Archivos Desde el Sistema de Archivos a SFTP

Esta guía le explicará cómo crear y configurar secuencias de comandos WINSCP para transferir archivos desde un sistema de archivos a SFTP. El tiempo estimado para esta configuración debería ser de entre 10 y 15 minutos. Como antecedente, este enfoque se utiliza para un cliente que genera archivos .xlsx desde App Builder que una empresa externa utiliza para determinar el acceso de los empleados a los informes en el sistema del cliente. Por lo tanto, esta información se genera a partir de App Builder primero y luego se transfieren al servidor de terceros siguiendo el proceso descrito en esta guía.

Cómo Configurar

  1. Cree un directorio nuevo directorio en su servidor web y agréguele dos archivos: winscp.log y {{algunNombre}} export.txt
  2. En el {{AlgúnNombre}} export.txt archivo, agregue el siguiente código para que esté en línea con su configuración:

    open sftp://{{nombreusuario}}:{{contraseña}}@{{nombre de host}} -hostkey="ssh-rsa 2048 {{clave de host}}"
    cd /path/to/directory/on/sftp
    put -nopermissions -nopreservetime -delete C:\{{RutaLocalAlArchivo}}`\*
    exit
    

    En el ejemplo del bloque de código, donde se lee sftp://{{nombreusuario}}:{{contraseña}}@{{nombre de host}}, {{nombreusuario}}, {{contraseña}}, y {{nombre de host}}debe reemplazarse con las credenciales de inicio de sesión de SFTP y el nombre de host, y el -hostkey se refiere a la huella digital de la clave de host del servidor que se puede encontrar en WinSCP > Sesión > Información del servidor y del protocolo > Huella digital de la clave de alojar del servidor. Ver captura de pantalla:

    Imagen 1

    cd /path/to/directory/on/sftpse refiere al directorio raíz de la carpeta SFTP de destino a la que se deben mover los archivos.

    put -nopermissions -nopreservetime -delete C:\{{RutaLocalAlArchivo}}*`se refiere a la ubicación del archivo en el servidor de origen ({{nm.ab}} servidor) que el archivo existe, mientras que * es un comodín que le indica al secuencia de comandos que tome cualquier archivo dentro de ese directorio.

    También debe tenerse en cuenta que la-deleteEn el secuencia de comandos, se eliminará el archivo tan pronto como se mueva (o intente moverlo). Esta opción se puede eliminar si desea conservar el archivo en su directorio de origen.

  3. Abra el Programador de tareas de Windows en el servidor web y cree una nueva tarea según sus especificaciones. En esta configuración en particular, el programa está configurado para ejecutarse cada 5 minutos, lo que se logra con la opción "Repetir tarea cada 5 minutos durante 1 día", en un programa diario:

    Imagen 2

  4. Haga doble clic en la tarea que acaba de crear en el paso 3. En la pestaña Acciones, cree una acción Iniciar un programa:

    • En Programa/ Secuencia de Comandos seleccione la ubicación de WinSCP.exe
    • En Agregar argumentos (opcional) coloque la siguiente cadena /console /script="{{algunNombre}} export.txt" /log="winscp.log" donde {{algunNombre}} export.txt es el nombre del archivo creado en el paso 1, y winscp.log¿Su archivo winscp.log también se creó en el paso 1?
    • En Iniciar en (opcional) agregue el "nuevo directorio" que creó en el paso 1

    Img 3

¡Ahora su tarea debería estar configurada para mover archivos desde el directorio especificado al SFTP! Puede ejecutar su tarea a pedido desde el Programador de tareas de Windows y verificar el archivo winscp.log para ver si hay algún error.

WinSCP tiene documentación muy útil si desea ampliar el secuencia de comandos o hacer algo similar con WinSCP: https://winscp.net/eng/docs/scripting