Cómo crear una herramienta de descarga y carga automática de archivos utilizando el comando WinSCP.


Fecha de publicación:9 de diciembre de 2020.



INFOMARTION > Cómo crear una herramienta de descarga y carga automática de archivos utilizando el comando WinSCP.

Resumen.

Crear una herramienta de descarga y carga automática de archivos mediante el comando WinSCP. Ejecute los comandos proporcionados por WinSCP utilizando el símbolo del sistema. No es de extrañar que WinSCP proporcione comandos. Normalmente se utiliza 'WinSCP.exe', pero también está disponible 'WinSCP.com'. Casi nunca verá la carpeta "C:\NArchivos de Programa (x86)\NWinSCP" en el destino del acceso directo, ya que normalmente se abre básicamente desde el acceso directo, pero si mira el destino del acceso directo, "WinSCP.com" también debería estar almacenado allí. Aquí es donde se crea la herramienta.

Índice de contenidos

  1. ¿Qué es el comando WinSCP?
  2. Herramienta de descarga automática
  3. Herramienta de carga automática
  4. Otros comandos que pueden utilizarse con frecuencia
  5. resumen

1. ¿Qué es el comando WinSCP?

El comando WinSCP es un comando que le permite realizar las operaciones de WinSCP que normalmente realiza en la GUI. Esta operación, que normalmente se realiza en la pantalla, se lleva a cabo mediante un comando.

1-1. Lo que puedes hacer.

Puedes descargar y subir archivos, crear carpetas, llamar a comandos del shell y muchas otras cosas.

Los comandos que se pueden utilizar con frecuencia son.

open・・・Se utiliza para la conexión.

get・・・Se utiliza para descargar archivos.

put・・・Se utiliza para cargar archivos.

exit・・・Se utiliza para cortar.

1-2. Lo que no puedes hacer.

Es posible descargar y subir archivos de forma básica, pero después de usar el sistema, parece difícil controlar los detalles.

Por ejemplo, parecía difícil "comprobar la fecha de actualización de un archivo y obtener un archivo con una fecha de actualización determinada".

Si desea adjuntar condiciones complejas al archivo a manipular, puede llamar al shell con el comando 'call', lo que puede lograrse utilizando comandos de Windows, comandos de Linux, etc.

2. Herramienta de descarga automática

Nos gustaría crear una herramienta que realmente descargue automáticamente los registros colocados en el servidor Linux.

2-1. haciendo

Cree una herramienta con las siguientes condiciones.

・Windows 10 como entorno de ejecución.

・El servidor que se va a adquirir es Linux.

・Dirección IP 192.168.50.10.

En primer lugar, cree un archivo bat como punto de partida para la activación.

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% 

Salvo la última línea, el resto del proceso es un comando de Windows. Contenido.

@setlocal enabledelayedexpansion

Configuración de las variables de entorno con retraso. Brevemente, esta descripción evita que se establezca un valor a una variable que puede no reflejarse.

@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%

El proceso de obtener aaaammddhmmss de la hora actual y finalmente ponerlo en la variable FOLDER.

@mkdir %FOLDER%

Cree una carpeta 'yyyymmddhmmss' directamente bajo la carpeta donde se ejecutó el lote.

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

WinSCP.com (comando WinSCP). La ejecución ejecuta los comandos enumerados en "ftp.txt" en la misma carpeta donde se almacena el archivo por lotes. Pase la ruta de la carpeta que acaba de crear como argumento.

Esto completa la creación del archivo de llamadas. El comando WinSCP se describe entonces en "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

Contenido.

option batch on

Para los procesos que requieren consulta, el sistema asume automáticamente que se ha seleccionado "No" y ejecuta automáticamente el proceso. Si incluyes esto, se sobrescribirá automáticamente cualquier nombre de archivo duplicado. (Puedes crear una carpeta "yyyymmddhmmss" y poner los archivos ahí, para que no haya nombres de archivos duplicados.)

option transfer binary

La configuración es para transferir los datos en modo binario.

open test:testpassword@192.168.50.10

'nombre de usuario:palabra de paso@dirección IP'. Conéctese a la dirección IP "192.168.50.10".

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

Guarde '/var/log/httpd/access_log' en la carpeta 'yyyymmddhhmmss'.('%1%' es el argumento pasado en file_get.bat)

También se pueden utilizar expresiones regulares, de modo que si se escribe "/var/log/httpd/*", se puede recuperar todo el registro.

close
exit

Se trata de un proceso de desconexión.

Esto completa la creación de la herramienta.

2-2. preparación de la aplicación

Antes de la ejecución, se realiza una toma de huellas dactilares preliminar.

Si nunca se ha conectado al servidor a través de WinSCP, se le preguntará si es seguro conectarse. Si pulsa "Sí", se deja un registro de la pulsación de "Sí" en un lugar llamado área de registro de Windows. Esto garantiza que el sistema no se compruebe por segunda vez. Cuando se ejecuta la herramienta, es necesario hacer esto por adelantado y guardar la información sobre el servidor en el área del registro para asegurarse de que es seguro para conectarse, por lo que ejecutar los siguientes comandos en el símbolo del sistema.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Se le pide una respuesta, introduzca "y".
close
exit
exit

'test:testpassword@192.168.50.10' debe ser sustituido por 'nombre de usuario:contraseña@dirección IP'.

Así se completan los preparativos preliminares.

2-3. aplicación

Por último, ha llegado el momento de aplicarlo. Haga doble clic en "file_get.bat".

Éxito si se crea la carpeta "yyyymmddhhmmss" y los registros se almacenan en la carpeta.

3. Herramienta de carga automática

El siguiente paso es crear una herramienta para colocar los archivos en un servidor Linux. La construcción básica será la misma que la de la herramienta de descarga.

3-1. haciendo

Cree una herramienta con las siguientes condiciones.

・Windows 10 como entorno de ejecución.

・El servidor de destino es Linux.

・Dirección IP 192.168.50.10.

En primer lugar, cree un archivo bat como punto de partida para la activación.

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%

Como se ha explicado en la herramienta de descarga automática, se omite una pequeña explicación, pero el proceso es almacenar los archivos en la carpeta 'put_files' en la misma carpeta donde se ejecuta el archivo batch en '/tmp/'. El proceso real de almacenamiento se describe en "put_ftp.txt".

put_ftp.txt


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

El comando "put %1%\ %2%" sube los archivos según el "archivo de origen" y la "carpeta de destino" pasados como argumentos, aunque se omite una pequeña explicación porque esto también se explica en la herramienta de descarga automática.

3-2. preparación de la aplicación

Al igual que con la herramienta de descarga automática, las huellas digitales se comprueban previamente antes de su ejecución.(No es necesario si la herramienta de descarga automática se ha ejecutado una vez.)

Ejecute el siguiente comando en la línea de comandos.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Se le pide una respuesta, introduzca "y".
close
exit
exit

'test:testpassword@192.168.50.10' debe ser sustituido por 'nombre de usuario:contraseña@dirección IP'.

Así se completan los preparativos preliminares.

3-3. aplicación

Por último, ha llegado el momento de aplicarlo. Haga doble clic en "file_put.bat".

Éxito si los archivos almacenados en 'put_files' se transfieren a la carpeta '/tmp/'.

4. Otros comandos que pueden utilizarse con frecuencia

Hemos introducido la descarga y la carga básicas, pero también nos gustaría describir otros comandos que pueden utilizarse con frecuencia.

4-1. autenticación de claves

Anteriormente, usted se conectó con la autenticación de la contraseña de acuerdo con la siguiente descripción.

open test:testpassword@192.168.50.10

'abrir nombre de usuario:contraseña@dirección IP'. Para la autenticación de claves, se aplica lo siguiente.

open test@192.168.50.10 -privatekey=id_rsa.ppk

La opción '-privatekey=id_rsa.ppk' es la ruta de acceso a la clave. Como aparece como una ruta relativa, se supone que la clave (id_rsa.ppk) está también en la carpeta donde se encuentra el archivo ejecutable (archivo bat). Por ejemplo, si la clave se encuentra directamente en la unidad C, escriba "-privatekey=C:\id_rsa.ppk".

4-2. Llamada a la cáscara

Para invocar el shell mediante el comando WinSCP, escriba lo siguiente.

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

'test.sh' es ejecutado por 'call sh /tmp/test.sh'. También es posible pasar argumentos. Al pasar los argumentos, escríbalos como "call sh /tmp/test.sh param1".

5. resumen

Se ha descrito el comando WinSCP.

Si normalmente utilizas la GUI de WinSCP para registrar y subir archivos a diario, puedes automatizarlo creando las herramientas descritas en este artículo. Puede ser una tarea menor, pero puede llevar mucho tiempo, excepto si se hace todos los días. Le animamos a crear herramientas para mejorar la eficiencia.

Gracias por mirar hasta el final.