Ir al contenido principal

Descarga automática (script + programador) - Windows

Aprende a automatizar transferencias SFTP y programar scripts en Windows.

Escrito por Mariana Lopez

1. Script para descarga SFTP

Automatiza la recuperación de archivos desde un servidor SFTP remoto a un directorio local utilizando una clave SSH privada para la autenticación.

Instrucciones

  • Creación del script:

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

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

@echo offREM === Variables personalizadas - la única parte a configurar ===set SFTP_DIR=/SFTP_path/set ARCHIVE_SFTP_DIR=/SFTP_archive_path/archives/set LOCAL_DIR=C:\LocalFolder\set USERNAME=sftp_userset PRIVATE_KEY=C:\LocalFolder\private_key.ppkset LOG_FILE=C:\LocalFolder\log.logset WINSCP=C:\Program Files (x86)\WinSCP\winscp.comREM === Ejecución de la descarga SFTP ===echo. 2> "%LOG_FILE%""%WINSCP%" /log="%LOG_FILE%" /command ^    "open sftp://%USERNAME%@files.agicap.com:2222 -privatekey=""%PRIVATE_KEY%"" -hostkey=""*""" ^    "get -filemask=""!*/"" ""%SFTP_DIR%*"" ""%LOCAL_DIR%""" ^    "exit"REM === Archivado posterior a la descarga ===set WINSCP_RESULT=%ERRORLEVEL%if %WINSCP_RESULT% equ 0 (    "%WINSCP%" /log="%LOG_FILE%" /command ^        "open sftp://%USERNAME%@files.agicap.com:2222 -privatekey=""%PRIVATE_KEY%"" -hostkey=""*""" ^        "mv ""%SFTP_DIR%*"" ""%ARCHIVE_SFTP_DIR%""" ^        "exit"    if %ERRORLEVEL% equ 0 (        echo Éxito: Archivos archivados en %ARCHIVE_SFTP_DIR%    ) else (        echo ERROR: Fallo al archivar (Código: %ERRORLEVEL%)    )) else (    echo ERROR: Fallo en la descarga (Código: %WINSCP_RESULT%). Revisa el archivo de log: %LOG_FILE%):exittimeout /t 10

  • Personalización:

    1. LOCAL_DIR : Directorio local donde se descargarán los archivos.

    2. ARCHIVE_SFTP_DIR : Directorio para archivar archivos en el servidor SFTP.

    3. SFTP_DIR : Ruta de origen de los archivos en el servidor SFTP (preguntar a Agicap).

    4. USERNAME : Usuario proporcionado por Agicap.

    5. PRIVATE_KEY : Ruta a la clave SSH privada.

    6. LOG_FILE : Archivo de log para seguir la ejecución del script.

  • Guardar y ejecutar:

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

    2. Haz doble clic para ejecutar el script y verifica que funcione correctamente.

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 en espera de transferencia)   ├── Archives\     (para copias de seguridad de archivos transferidos)   ├── Scripts\     (coloca tus scripts bat)   ├── Keys\     (coloca 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. Inicia 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 (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?