Ir al contenido principal

Carga automática (script + programador) - Windows

Aprende a automatizar transferencias SFTP con un script y el Programador de tareas de Windows.

Escrito por Mariana Lopez

1. Script para carga SFTP

Este script automatiza la transferencia de archivos desde un directorio local a un servidor SFTP remoto utilizando una clave SSH privada para la autenticación.

Instrucciones

  • Creación del script:

    1. Copia el script de plantilla en tu editor de texto (Notepad, Notepad++, Visual Studio Code, etc.).

    2. Modifica la sección "Variables personalizadas - la única parte a configurar".

@echo offREM === Variables personalizadas - la única parte a configurar ===set LOCAL_DIR=C:\FolderOnYourServer\set ARCHIVE_DIR=C:\ArchiveFolderOnYourServer\set SFTP_DIR=/SFTP_path/set USERNAME=sftp_user.agicapset PRIVATE_KEY=C:\FolderOnYourServer\private_key.ppkset LOG_FILE=C:\FolderOnYourServer\log.logset WINSCP=C:\Program Files (x86)\WinSCP\winscp.comREM === Comprobaciones básicas ===if not exist "%WINSCP%" (    echo Error: WinSCP no está instalado.    goto :exit)if not exist "%PRIVATE_KEY%" (    echo Error: Clave privada no encontrada.    goto :exit)REM === Ejecución de la transferencia SFTP ===echo. 2> "%LOG_FILE%""%WINSCP%" /log="%LOG_FILE%" /command ^    "open sftp://%USERNAME%@files.agicap.com:2222 -privatekey=""%PRIVATE_KEY%"" -hostkey=""*""" ^    "put -transfer=auto ""%LOCAL_DIR%\*"" ""%SFTP_DIR%""" ^    "exit"REM === Archivado posterior a la transferencia ===set WINSCP_RESULT=%ERRORLEVEL%if %WINSCP_RESULT% equ 0 (    move /Y "%LOCAL_DIR%\*" "%ARCHIVE_DIR%") else (    echo "La transferencia falló, revisa el archivo de log: %LOG_FILE%"):exittimeout /t 10

  • Personalización:

    1. LOCAL_DIR : Directorio en tu servidor que contiene los archivos a enviar.

    2. ARCHIVE_DIR : Directorio en tu servidor para archivar los archivos enviados.

    3. SFTP_DIR : Ruta de destino en el servidor SFTP (pregunta a Agicap).

    4. USERNAME : Usuario proporcionado por Agicap.

    5. PRIVATE_KEY : Ruta a la clave privada SSH.

    6. LOG_FILE : Archivo de log para registrar los detalles de la ejecución.

  • Guardar y ejecutar:

    1. Guarda el archivo con extensión .bat (ejemplo: sftp_upload_script.bat).

    2. Haz doble clic en el archivo para ejecutar el script y verifica que funcione como esperas.

2. Programación del script

Después de crear y validar tu script, puedes configurar la ejecución automática usando el Programador de tareas de Windows. Esta guía explica cómo configurar tareas programadas para tus scripts.

Estructura de directorios

Organización de archivos recomendada:

C:\Agicap\   ├── Logs\         (para archivos de log)   ├── Exports\      (para archivos pendientes de transferencia)   ├── Archives\     (para copias de seguridad de archivos transferidos)   ├── Scripts\     (coloca aquí tus scripts bat)   ├── Keys\     (coloca aquí tus claves privadas y públicas)

Configuración de la ejecución automática de tareas

  • Abrir el Programador de tareas

    1. Busca "Programador de tareas" en el menú Inicio de Windows

    2. Lanza la aplicación

  • Crear una nueva tarea programada

    1. En el menú Acción, selecciona "Crear tarea"

  • Configurar los ajustes de la tarea

    1. Información básica

      • Asigna un nombre y descripción significativos

  • Configuración de la programación

    • Selecciona frecuencia "Diaria"

    • Elige la hora de inicio deseada (por ejemplo, 5:30 AM)

    • Confirma que esté seleccionado "Repetir cada 1 día"

  • Configuración de la acción

    • Elige "Iniciar un programa"

    • Busca y selecciona tu archivo de script

  • Finalizar configuración

    1. Revisa todos los detalles de configuración

    2. Haz clic en "Finalizar" para activar la programación

    3. Tu tarea aparecerá ahora en la biblioteca del Programador de tareas donde podrás modificar los ajustes según sea necesario

¿Ha quedado contestada tu pregunta?