Passer au contenu principal

Téléchargement automatique (script + planificateur) - Windows

Apprenez à automatiser les transferts SFTP et à planifier vos scripts sous Windows.

Écrit par Manon Champion

1. Script pour le téléchargement SFTP

Automatisez la récupération de fichiers depuis un serveur SFTP distant vers un répertoire local en utilisant une clé SSH privée pour l'authentification.

Instructions

  • Création du script :

  • Copiez le script modèle dans votre éditeur de texte (Notepad, Notepad++, Visual Studio Code, etc.).

  • Modifiez la section "Variables personnalisées - la seule partie à configurer".

@echo offREM === Variables personnalisées - la seule partie à configurer ===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 === Exécution du téléchargement 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 === Archivage post-téléchargement ===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 Succès : Fichiers archivés dans %ARCHIVE_SFTP_DIR%    ) else (        echo ERREUR : Archivage échoué (Code : %ERRORLEVEL%)    )) else (    echo ERREUR : Téléchargement échoué (Code : %WINSCP_RESULT%). Vérifiez le fichier log : %LOG_FILE%):exittimeout /t 10

  • Personnalisation :

    1. LOCAL_DIR : Répertoire local où les fichiers seront téléchargés.

    2. ARCHIVE_SFTP_DIR : Répertoire d'archivage des fichiers sur le serveur SFTP.

    3. SFTP_DIR : Chemin source des fichiers sur le serveur SFTP (demander à Agicap).

    4. USERNAME : Identifiant fourni par Agicap.

    5. PRIVATE_KEY : Chemin vers la clé SSH privée.

    6. LOG_FILE : Fichier log pour suivre l'exécution du script.

  • Enregistrer et exécuter :

    1. Enregistrez le fichier avec une extension .bat (exemple : sftp_download_script.bat).

    2. Double-cliquez pour exécuter le script et vérifiez son bon fonctionnement.

2. Planification du script

Après avoir créé et validé votre script, vous pouvez configurer son exécution automatique à l'aide du Planificateur de tâches Windows. Ce guide explique comment configurer des tâches planifiées pour vos scripts.

Structure des répertoires

Organisation des fichiers recommandée :

C:\Agicap\   ├── Logs\         (pour les fichiers log)   ├── Exports\      (pour les fichiers en attente de transfert)   ├── Archives\     (pour la sauvegarde des fichiers transférés)   ├── Scripts\     (placez vos scripts bat)   ├── Keys\     (placez vos clés privées et publiques)

Mise en place de l'exécution automatique de la tâche

  • Ouvrir le Planificateur de tâches

    1. Recherchez "Planificateur de tâches" dans le menu Démarrer de Windows

    2. Lancez l'application

  • Créer une nouvelle tâche planifiée

    1. Dans le menu Action, sélectionnez "Créer une tâche"

  • Configurer les paramètres de la tâche

    1. Informations de base

      • Attribuez un nom et une description explicites

  • Paramètres de planification

    • Sélectionnez la fréquence "Quotidienne"

    • Choisissez l'heure de début souhaitée (ex : 5h30)

    • Vérifiez que "Répéter tous les 1 jour" est sélectionné

  • Configuration de l'action

    • Choisissez "Démarrer un programme"

    • Parcourez et sélectionnez votre fichier script

  • Finaliser la configuration

    1. Vérifiez tous les détails de configuration

    2. Cliquez sur "Terminer" pour activer la planification

    3. Votre tâche apparaîtra maintenant dans la bibliothèque du Planificateur de tâches où vous pourrez modifier les paramètres si besoin

Avez-vous trouvé la réponse à votre question ?