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 previsto 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 Vinyl 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 primero a partir de Vinyl y luego se transfiere 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 {{SomeName}}Export.txt
  2. En el {{SomeName}}Export.txt archivo, agregue el siguiente código para que esté en línea con su configuración:

    open sftp://{{username}}:{{password}}@{{hostname}} -hostkey="ssh-rsa 2048 {{hostkey}}"
    cd /path/to/directory/on/sftp
    put -nopermissions -nopreservetime -delete C:\{{LocalPathToFile}}\*
    exit
    

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

    Img 1

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

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

    También cabe señalar que el-deleteen el secuencia de comandos eliminará su archivo tan pronto como se mueva (o intente moverlo). Esta marca se puede eliminar si desea mantener el archivo en su directorio de origen.

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

    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) ingrese la siguiente cadena /console /script="{{SomeName}}Export.txt" /log="winscp.log" donde {{SomeName}}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 Comenzar en (opcional) agrega el "nuevo directorio" que creaste en el paso 1

    Imagen 3

¡Su tarea ahora 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 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