GNU/Linux >> Tutoriales Linux >  >> Linux

Escriba un script por lotes para automatizar la transferencia de archivos entre Linux y Windows usando WinSCP

Pregunta :He estado ejecutando cron en un servidor Linux para realizar una copia de seguridad de mi sitio web una vez al día. Pero descargo esas copias de seguridad en mi máquina local (que es Windows) una vez a la semana más o menos. ¿Es posible automatizar la transferencia de archivos de Linux a Windows?

Respuesta:

Sí tu puedes. Eche un vistazo a la función de secuencias de comandos y automatización de WinSCP.

En este tutorial, explicaré cómo escribir un script por lotes para automatizar la transferencia de archivos entre Linux y Windows usando WinSCP y luego programar el script usando el Programador de tareas en Windows.

Suposiciones:asumo que el servidor SSH se ejecuta en una máquina Linux y la máquina local es Windows 10.

Escribir secuencias de comandos por lotes para automatizar la transferencia de archivos de Linux a Windows

¿Dije escribir un script por lotes? No quise decir en realidad, en su lugar, usaremos WinSCP para generar el script por lotes.

Paso 1 :Inicie la aplicación WinSCP.

Paso 2 :En primer lugar, compruebe la versión de WinSCP

Paso 3 :si está utilizando una versión anterior de WinSCP, debe descargar e instalar la última versión.

Paso 4 :Inicie WinSCP después de instalar la última versión.

Paso 5 :Inicie sesión en la máquina Linux (remota) ingresando los detalles necesarios, como la dirección IP, el nombre de usuario y la contraseña.

Paso 6 :Tras iniciar sesión correctamente, haga clic en Sesión> Generar código/URL de sesión del menú.

Paso 7 :En la sección “Generar URL/código de sesión ”, busque “Contraseña casilla de verificación. Si está deshabilitado, debe habilitarlo para automatizar la transferencia de archivos. Para hacerlo, debe guardar la sesión con el nombre de usuario y la contraseña necesarios.

Precaución:no se recomienda guardar la contraseña, pero si desea iniciar sesión y transferir archivos automáticamente, debe guardar la contraseña.

Paso 8 :Seleccione “Guión ” y seleccione “Archivo por lotes ” en Formato campo.

Paso 9 :Haga clic en "Copiar al portapapeles y pega el código en un bloc de notas.

Paso 10 :Modifique la línea "Su comando 1 ” y “Tu comando 2 “. Los comandos pueden ser obtener, poner o sincronizar .

Por ejemplo, si desea colocar/cargar un archivo en el directorio remoto, el comando es el siguiente:

Poner sintaxis:

put <file> [ [ <file2> ... ] <directory>/[ <newname> ] ]

Ejemplos de comandos Put:

put file.html
put d:\www\file.html

Obtener ejemplos de comandos:

get file.html d:\www\

Si desea sincronizar las carpetas entre el equipo local y el remoto, debe usar sincronizar local/remoto/ambos comandos La siguiente secuencia de comandos muestra eso.

@echo off
"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="E:\Backup\WinSCP.log" /ini=nul ^
/command ^
"open sftp://username:[email protected]/ -hostkey=""ssh-rsa 2048 leave_the_key"" -rawsettings Cipher=""aes,blowfish,3des,chacha20,WARN,arcfour,des"" KEX=""ecdh,dh-gex-sha1,dh-group14-sha1,dh-group1-sha1,rsa,WARN""" ^
"synchronize local E:\Backup /home/domain/backup" ^
"exit"
set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)
exit /b %WINSCP_RESULT

En el script anterior, he usado sincronizar local para sincronizar archivos entre la máquina local y remota. Significa que los cambios en el directorio remoto se aplicarán al directorio local.

Nota :La zanahoria ( ^ ) se usa para dividir comandos largos.

Alternativamente, puede usar

  • sincronizar control remoto – los cambios del directorio local se aplican al directorio remoto.
  • sincronizar ambos – modificará los directorios remoto y local.

Paso 11 :Guarde el script como .bat (LOTE) archivo.

Paso 12 :Haga doble clic en el archivo por lotes para probar el script. Debería ver una ventana de comandos que muestra el estado de la transferencia de archivos.

Crear tarea en el Programador de tareas de Windows

Finalmente, programaremos el script por lotes con el programador de tareas de Windows. Probablemente desee programar una copia de seguridad a las 3 a. m. todos los días o todos los lunes.

Paso 1 :Inicie el programa del programador de tareas

Paso 2 :en el menú, haga clic en Acción> Crear tarea

Paso 3 :establezca el nombre de la tarea, los disparadores, la acción y las condiciones como se muestra a continuación:

Paso 4 :Verifique si la tarea se ha creado correctamente. Para hacerlo, debe hacer clic en el nodo "Biblioteca del programador de tareas" en el panel lateral izquierdo y ver la lista de tareas en el panel central.

Paso 5 :Para probar el script, simplemente haga clic con el botón derecho en la tarea y seleccione "Ejecutar “.

Si desea realizar una copia de seguridad de la tarea, haga clic derecho en la tarea y seleccione Exportar .


Linux
  1. Szyszka:nuevo renombrador rápido de archivos por lotes para Linux, Windows y Mac

  2. Cómo configurar el servidor SAMBA y transferir archivos entre Linux y Windows

  3. Cómo transferir archivos entre servidores en Linux usando SCP y FTP

  4. Uso de DLL de Windows desde Linux

  5. ¿Cómo escribir un archivo con C en Linux?

Transferir archivos entre Windows y Linux utilizando su red local

Cómo grabar y reproducir sesiones de terminal de Linux usando los comandos 'script' y 'scriptreplay'

Comparta archivos fácilmente entre Linux, Windows y Mac usando NitroShare

Transferir archivos usando WinSCP

10 ejemplos de PuTTY PLINK para automatizar comandos remotos de Linux desde archivos por lotes de Windows

Cómo ejecutar el comando SUDO en WinSCP para transferir archivos de Windows a Linux