GNU/Linux >> Linux Esercitazione >  >> Linux

Scrivi uno script batch per automatizzare il trasferimento di file tra Linux e Windows utilizzando WinSCP

Domanda :Ho eseguito cron su un server Linux per eseguire un backup del mio sito Web una volta al giorno. Ma scarico quei backup sul mio computer locale (che è Windows) una volta alla settimana circa. È possibile automatizzare il trasferimento di file da Linux a Windows?

Risposta:

Si, puoi. Dai un'occhiata alla funzione di scripting e automazione di WinSCP.

In questo tutorial, spiegherò come scrivere uno script batch per automatizzare il trasferimento di file tra Linux e Windows utilizzando WinSCP e quindi pianificare lo script utilizzando l'Utilità di pianificazione in Windows.

Presupposti:presumo che il server SSH sia in esecuzione su una macchina Linux e che la macchina locale sia Windows 10.

Scrittura di script batch per automatizzare il trasferimento di file da Linux a Windows

Ho detto di scrivere uno script batch? In realtà non intendevo, invece utilizzeremo WinSCP per generare lo script batch.

Passaggio 1 :Avvia l'applicazione WinSCP.

Passaggio 2 :Prima di tutto, controlla la versione di WinSCP

Passaggio 3 :se stai utilizzando una versione precedente di WinSCP, devi scaricare e installare la versione più recente.

Passaggio 4 :Avvia WinSCP dopo aver installato l'ultima versione.

Passaggio 5 :Accedi alla macchina Linux (remota) inserendo i dettagli necessari come indirizzo IP, nome utente e password.

Passaggio 6 :Dopo aver effettuato l'accesso, fai clic su Sessione> Genera URL/codice sessione dal menu.

Passaggio 7 :in "Genera URL/codice sessione ", cerca "Password casella di controllo. Se è disabilitato, è necessario abilitarlo per automatizzare il trasferimento dei file. Per fare ciò, è necessario salvare la sessione con nome utente e password necessari.

Attenzione:non è consigliabile salvare la password, ma se desideri accedere e trasferire automaticamente i file, devi salvare la password.

Passaggio 8 :seleziona "Script ” e seleziona “File batch ” in Formato campo.

Passaggio 9 :fai clic su "Copia negli appunti ” e incolla il codice in un blocco note.

Passaggio 10 :modifica la riga "Il tuo comando 1 ” e “Il tuo comando 2 “. I comandi possono essere ottieni, metti o sincronizza .

Ad esempio, se vuoi mettere/caricare un file nella directory remota, il comando va come segue:

Inserisci sintassi:

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

Inserisci esempi di comandi:

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

Ottieni esempi di comandi:

get file.html d:\www\

Se desideri sincronizzare le cartelle tra il computer remoto e locale, devi utilizzare sincronizzazione locale/remoto/entrambi comandi. Lo script seguente lo mostra.

@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

Nello script precedente, ho utilizzato sincronizzazione locale per sincronizzare i file tra il computer remoto e locale. Significa che le modifiche nella directory remota verranno applicate alla directory locale.

Nota :La carota ( ^ ) viene utilizzato per dividere i comandi lunghi.

In alternativa, puoi utilizzare

  • sincronizza in remoto – le modifiche dalla directory locale vengono applicate alla directory remota.
  • sincronizza entrambi – modificherà sia la directory remota che quella locale.

Passaggio 11 :salva lo script come .bat (BATCH).

Passaggio 12 :Fare doppio clic sul file batch per testare lo script. Dovresti vedere una finestra di comando che mostra lo stato del trasferimento dei file.

Crea attività nell'Utilità di pianificazione di Windows

Infine, pianificheremo lo script batch utilizzando l'utilità di pianificazione di Windows. Probabilmente vuoi programmare un backup alle 3 del mattino ogni giorno o ogni lunedì.

Passaggio 1 :Avvia il programma Utilità di pianificazione

Passaggio 2 :dal menu, fai clic su Azione> Crea attività

Passaggio 3 :Imposta Nome dell'attività, Trigger, Azione e Condizioni come mostrato di seguito:

Passaggio 4 :verifica se l'attività è stata creata correttamente. Per fare ciò, devi fare clic sul nodo "Libreria dell'utilità di pianificazione" dal pannello di sinistra e visualizzare l'elenco delle attività nel pannello centrale.

Passaggio 5 :per testare lo script, fai clic con il pulsante destro del mouse sull'attività e seleziona "Esegui “.

Se desideri eseguire un backup dell'attività, fai clic con il pulsante destro del mouse sull'attività e seleziona Esporta .


Linux
  1. Come trasferire file tra due computer utilizzando i comandi nc e pv

  2. Comando SCP Linux – Come trasferire file SSH da remoto a locale

  3. Permessi dei file in Linux – Lettura/Scrittura/Esegui

  4. Utilizzando Windows DLL da Linux

  5. Utilizzo di nc per trasferire file di grandi dimensioni

Trasferisci file tra Windows e Linux utilizzando la tua rete locale

Come registrare e riprodurre sessioni del terminale Linux utilizzando i comandi "script" e "scriptreplay".

Condividi facilmente i file tra Linux, Windows e Mac utilizzando NitroShare

Trasferisci file usando WinSCP

10 esempi PuTTY PLINK per automatizzare i comandi Linux remoti dai file batch di Windows

Come eseguire il comando SUDO in WinSCP per trasferire file da Windows a Linux