GNU/Linux >> Tutoriels Linux >  >> Linux

Écrire un script batch pour automatiser le transfert de fichiers entre Linux et Windows à l'aide de WinSCP

Question :J'ai exécuté cron sur un serveur Linux pour effectuer une sauvegarde de mon site Web une fois par jour. Mais je télécharge ces sauvegardes sur ma machine locale (qui est Windows) une fois par semaine environ. Est-il possible d'automatiser le transfert de fichiers de Linux vers Windows ?

Réponse :

Oui, vous pouvez. Jetez un œil à la fonctionnalité de script et d'automatisation de WinSCP.

Dans ce didacticiel, j'expliquerai comment écrire un script batch pour automatiser le transfert de fichiers entre Linux et Windows à l'aide de WinSCP, puis planifier le script à l'aide du planificateur de tâches sous Windows.

Hypothèses :Je suppose que le serveur SSH s'exécute sur une machine Linux et que la machine locale est Windows 10.

Écrire un script batch pour automatiser le transfert de fichiers de Linux vers Windows

Ai-je dit écrire un script batch? Je ne voulais pas dire en fait, à la place, nous allons utiliser WinSCP pour générer le script batch.

Étape 1 :Lancer l'application WinSCP.

Étape 2 :Tout d'abord, vérifiez la version de WinSCP

Étape 3  :Si vous utilisez une ancienne version de WinSCP, vous devez télécharger et installer la dernière version.

Étape 4 :Lancez WinSCP après avoir installé la dernière version.

Étape 5 :Connectez-vous à la machine Linux (à distance) en entrant les détails nécessaires tels que l'adresse IP, le nom d'utilisateur et le mot de passe.

Étape 6  :Une fois la connexion réussie, cliquez sur Session > Générer l'URL/le code de la session dans le menu.

Étape 7  :Dans le champ "Générer l'URL/le code de la session ", recherchez "Mot de passe ” case à cocher. S'il est désactivé, vous devez l'activer pour automatiser le transfert de fichiers. Pour ce faire, vous devez enregistrer la session avec le nom d'utilisateur et le mot de passe nécessaires.

Attention :Il n'est pas conseillé d'enregistrer le mot de passe, mais si vous souhaitez vous connecter et transférer automatiquement des fichiers, vous devez enregistrer le mot de passe.

Étape 8  :Sélectionnez "Script ” et sélectionnez “Fichier batch ” au Format champ.

Étape 9  :Cliquez sur "Copier dans le Presse-papiers " et collez le code dans un bloc-notes.

Étape 10  :Modifiez la ligne "Votre commande 1 » et « Votre commande 2 “. Les commandes peuvent être obtenir, mettre ou synchroniser .

Par exemple, si vous souhaitez placer/télécharger un fichier dans le répertoire distant, la commande se déroule comme suit :

Syntaxe de saisie :

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

Exemples de commandes Put :

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

Obtenir des exemples de commandes :

get file.html d:\www\

Si vous souhaitez synchroniser les dossiers entre la machine distante et la machine locale, vous devez utiliser synchronize local/remote/both commandes. Le script ci-dessous le montre.

@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

Dans le script ci-dessus, j'ai utilisé synchronize local pour synchroniser les fichiers entre la machine distante et la machine locale. Cela signifie que les modifications apportées au répertoire distant seront appliquées au répertoire local.

Remarque :La carotte ( ^ ) est utilisé pour diviser les longues commandes.

Alternativement, vous pouvez utiliser

  • synchroniser la télécommande – les modifications du répertoire local sont appliquées au répertoire distant.
  • synchroniser les deux – modifiera à la fois les répertoires distant et local.

Étape 11 :Enregistrez le script sous .bat (BATCH).

Étape 12 :Double-cliquez sur le fichier batch pour tester le script. Vous devriez voir une fenêtre de commande affichant l'état du transfert de fichiers.

Créer une tâche dans le planificateur de tâches Windows

Enfin, nous planifierons le script batch à l'aide du planificateur de tâches Windows. Vous souhaitez probablement programmer une sauvegarde à 3h du matin tous les jours ou tous les lundis.

Étape 1 :Lancer le programme du planificateur de tâches

Étape 2  :Dans le menu, cliquez sur Action > Créer une tâche

Étape 3 :Définissez le nom de la tâche, les déclencheurs, l'action et les conditions comme indiqué ci-dessous :

Étape 4 :Vérifiez si la tâche a été créée correctement. Pour ce faire, vous devez cliquer sur le nœud "Bibliothèque du planificateur de tâches" dans le panneau de gauche et afficher la liste des tâches sur le panneau du milieu.

Étape 5  :Pour tester le script, faites un clic droit sur la tâche et sélectionnez "Exécuter ".

Si vous souhaitez effectuer une sauvegarde de la tâche, faites un clic droit sur la tâche et sélectionnez Exporter .


Linux
  1. Comment transférer des fichiers entre deux ordinateurs à l'aide des commandes nc et pv

  2. Szyszka - Nouveau Renommeur de fichiers Fast Batch pour Linux, Windows, Mac

  3. Comment configurer le serveur SAMBA et transférer des fichiers entre Linux et Windows

  4. Comment transférer des fichiers entre serveurs sous Linux à l'aide de SCP et FTP

  5. Commande SCP Linux - Comment transférer un fichier SSH de distant à local

Transférer des fichiers entre Windows et Linux à l'aide de votre réseau local

Comment enregistrer et rejouer des sessions de terminal Linux à l'aide des commandes "script" et "scriptreplay"

Partagez facilement des fichiers entre Linux, Windows et Mac à l'aide de NitroShare

Transférer des fichiers à l'aide de WinSCP

10 exemples PuTTY PLINK pour automatiser les commandes Linux distantes à partir de fichiers batch Windows

Comment exécuter la commande SUDO dans WinSCP pour transférer des fichiers de Windows vers Linux