Comment créer un outil de téléchargement et d'envoi automatique de fichiers à l'aide de la commande WinSCP.


Date de publication:9 décembre 2020.



INFOMARTION > Comment créer un outil de téléchargement et d'envoi automatique de fichiers à l'aide de la commande WinSCP.

Vue d'ensemble.

Créer un outil de téléchargement et d'envoi automatique de fichiers à l'aide de la commande WinSCP. Exécutez les commandes fournies par WinSCP en utilisant l'invite de commande. Sans surprise, WinSCP fournit des commandes. Vous utilisez normalement 'WinSCP.exe', mais 'WinSCP.com' est également disponible. Vous ne verrez presque jamais le dossier " C:\Program Files (x86)\WinSCP " dans la destination du raccourci, car vous l'ouvrez généralement à partir du raccourci, mais si vous regardez la destination du raccourci, " WinSCP.com " devrait également y être stocké. C'est ici que l'outil est créé.

Table des matières

  1. Qu'est-ce que la commande WinSCP ?
  2. Outil de téléchargement automatique
  3. Outil de téléchargement automatique
  4. Autres commandes qui peuvent être utilisées fréquemment
  5. résumé

1. Qu'est-ce que la commande WinSCP ?

La commande WinSCP est une commande qui vous permet d'effectuer les opérations WinSCP que vous effectuez normalement dans l'interface graphique. Cette opération, que vous effectuez normalement à l'écran, est réalisée au moyen d'une commande.

1-1. Ce que vous pouvez faire.

Vous pouvez télécharger et envoyer des fichiers, créer des dossiers, appeler des commandes shell et bien d'autres choses encore.

Les commandes qui peuvent être utilisées fréquemment incluent.

open・・・Utilisé pour la connexion.

get・・・Utilisé pour télécharger des fichiers.

put・・・Utilisé pour le téléchargement de fichiers.

exit・・・Utilisé pour la découpe.

1-2. Ce que vous ne pouvez pas faire.

Les téléchargements et les téléversements de fichiers de base sont possibles, mais après avoir utilisé le système, il semble difficile de contrôler les détails.

Par exemple, il semblait difficile de "vérifier la date de mise à jour d'un fichier et d'aller chercher un fichier avec une date de mise à jour spécifiée".

Si vous voulez attacher des conditions complexes au fichier à manipuler, vous pouvez appeler le shell avec la commande 'call', ce qui peut être réalisé à l'aide de commandes Windows, Linux, etc.

2. Outil de téléchargement automatique

Nous aimerions créer un outil qui téléchargerait automatiquement les journaux placés sur le serveur Linux.

2-1. réalisation de

Créez un outil avec les conditions suivantes.

・Windows 10 comme environnement d'exécution.

・Le serveur à acquérir est Linux.

・Adresse IP 192.168.50.10.

Tout d'abord, créez un fichier bat comme point de départ pour l'activation.

file_get.bat


@setlocal enabledelayedexpansion
@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%
@mkdir %FOLDER%
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

À l'exception de la dernière ligne, le reste du processus est une commande Windows. Contenu.

@setlocal enabledelayedexpansion

Paramètres pour les variables d'environnement retardées. En bref, cette description empêche de donner une valeur à une variable qui pourrait ne pas être reflétée.

@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%

Le processus d'obtention de yyyymmddhmmss à partir de l'heure actuelle et enfin de le mettre dans la variable FOLDER.

@mkdir %FOLDER%

Créez un dossier 'yyyymmddhmmss' directement sous le dossier où le lot a été exécuté.

@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

WinSCP.com (commande WinSCP). L'exécution exécute les commandes énumérées dans "ftp.txt" dans le même dossier où est stocké le fichier batch. Passez le chemin du dossier que vous venez de créer comme argument.

Ceci termine la création du fichier de l'appelant. La commande WinSCP est ensuite décrite dans "ftp.txt".

ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
get /var/log/httpd/access_log %1%\
close
exit

Contenu.

option batch on

Pour les processus qui nécessitent une interrogation, le système suppose automatiquement que "Non" a été sélectionné et exécute automatiquement le processus. Si vous l'incluez, il écrasera automatiquement tous les noms de fichiers en double. (Vous pouvez créer un dossier "yyyymmddhmmss" et y placer les fichiers, afin d'éviter les doublons de noms de fichiers.)

option transfer binary

Ce paramètre permet de transférer les données en mode binaire.

open test:testpassword@192.168.50.10

'nom d'utilisateur:mot de passe@adresse IP'. Connectez-vous à l'adresse IP "192.168.50.10".

get /var/log/httpd/access_log %1%\

Stockez '/var/log/httpd/access_log' dans le dossier 'yyyymmddhhmmss'.('%1%' est l'argument passé dans file_get.bat)

Des expressions régulières peuvent également être utilisées. Ainsi, si vous écrivez "/var/log/httpd/*", l'ensemble du journal peut être récupéré.

close
exit

C'est un processus de déconnexion.

La création de l'outil est ainsi terminée.

2-2. préparation à la mise en œuvre

Des empreintes digitales préliminaires sont prises avant l'exécution.

Si le serveur n'a jamais été connecté via WinSCP, il vous sera demandé si la connexion est sûre. Si vous appuyez sur "Oui", un enregistrement de cette action est laissé dans un endroit appelé zone de registre de Windows. Cela permet d'éviter que le système soit contrôlé une seconde fois. Lors de l'exécution de l'outil, il est nécessaire de le faire à l'avance et d'enregistrer les informations sur le serveur dans la zone de registre pour s'assurer qu'il est sûr de se connecter, donc exécutez les commandes suivantes à l'invite de commande.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Une réponse vous est demandée, entrez 'y'.
close
exit
exit

test:testpassword@192.168.50.10" doit être remplacé par "nom d'utilisateur:mot de passe@adresse IP".

Les préparatifs préliminaires sont ainsi terminés.

2-3. mise en œuvre

Enfin, il est temps de la mettre en œuvre. Double-cliquez sur 'file_get.bat'.

Succès si le dossier "yyyymmddhhmmss" est créé et que les journaux sont stockés dans le dossier.

3. Outil de téléchargement automatique

L'étape suivante consiste à créer un outil permettant de placer des fichiers sur un serveur Linux. La construction de base sera la même que celle de l'outil de téléchargement.

3-1. réalisation de

Créez un outil avec les conditions suivantes.

・Windows 10 comme environnement d'exécution.

・Le serveur de destination est Linux.

・Adresse IP 192.168.50.10.

Tout d'abord, créez un fichier bat comme point de départ pour l'activation.

file_put.bat


@setlocal enabledelayedexpansion
@set FOLDER_NAME="put_files\*"
@set FOLDER=%~dp0%FOLDER_NAME%
@set PUT_FOLDER="/tmp/"
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0put_ftp.txt /parameter %FOLDER% %PUT_FOLDER%

Comme cela a été expliqué dans l'outil de téléchargement automatique, une petite explication est omise, mais le processus consiste à stocker les fichiers dans le dossier 'put_files' dans le même dossier où le fichier batch est exécuté dans '/tmp/'. Le processus de stockage réel est décrit dans "put_ftp.txt".

put_ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
put %1% %2%
close
exit

La commande "put %1%\ %2%" télécharge les fichiers en fonction du "fichier source" et du "dossier de destination" passés en arguments, bien qu'une petite explication soit omise car cela est également expliqué à l'outil de téléchargement automatique.

3-2. préparation à la mise en œuvre

Comme pour l'outil de téléchargement automatique, les empreintes digitales sont vérifiées au préalable avant l'exécution.(Non requis si l'outil de téléchargement automatique a été exécuté une fois.)

Exécutez la commande suivante à l'invite de commande.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Une réponse vous est demandée, entrez 'y'.
close
exit
exit

test:testpassword@192.168.50.10" doit être remplacé par "nom d'utilisateur:mot de passe@adresse IP".

Les préparatifs préliminaires sont ainsi terminés.

3-3. mise en œuvre

Enfin, il est temps de la mettre en œuvre. Double-cliquez sur 'file_put.bat'.

Succès si les fichiers stockés dans 'put_files' sont transférés dans le dossier '/tmp/'.

4. Autres commandes qui peuvent être utilisées fréquemment

Nous avons présenté les fonctions de base de téléchargement et d'envoi, mais nous souhaitons également décrire d'autres commandes qui peuvent être utilisées fréquemment.

4-1. authentification par clé

Plus tôt, vous vous êtes connecté avec une authentification par mot de passe selon la description suivante.

open test:testpassword@192.168.50.10

'ouvrir nom d'utilisateur:mot de passe@adresse IP'. Pour l'authentification par clé, les règles suivantes s'appliquent.

open test@192.168.50.10 -privatekey=id_rsa.ppk

Le '-privatekey=id_rsa.ppk' est le chemin vers la clé. Comme il s'agit d'un chemin relatif, on suppose que la clé (id_rsa.ppk) se trouve également dans le dossier où se trouve le fichier exécutable (fichier bat). Par exemple, si la clé est située directement sous le lecteur C, écrivez "-privatekey=C:\id_rsa.ppk".

4-2. Appeler le shell

Pour invoquer le shell au moyen de la commande WinSCP, écrivez comme suit.

option batch on
option transfer binary
open test:testpassword@192.168.50.10
call sh /tmp/test.sh
close
exit

Le fichier 'test.sh' est exécuté par 'call sh /tmp/test.sh'. Il est également possible de passer des arguments. Lorsque vous passez des arguments, écrivez-les comme "call sh /tmp/test.sh param1".

5. résumé

La commande WinSCP a été décrite.

Si vous utilisez normalement l'interface graphique WinSCP pour enregistrer et télécharger des fichiers sur une base quotidienne, vous pouvez automatiser cette opération en créant les outils décrits dans cet article. Il peut s'agir d'une tâche mineure, mais elle peut prendre beaucoup de temps, sauf si elle est effectuée tous les jours. Nous vous encourageons à créer des outils pour améliorer l'efficacité.

Merci d'avoir regardé jusqu'à la fin.