GNU/Linux >> Tutoriels Linux >  >> Linux

Meilleur moyen de scripter des commandes SSH distantes dans Batch (Windows)

Vous pouvez également utiliser Bash on Ubuntu on Windows directement. Par exemple,

bash -c "ssh -t [email protected] 'cd /; sudo my-command'"

Selon le commentaire de Martin Prikryl ci-dessous :

Le -t active l'émulation de terminal. Que vous ayez besoin de l'émulation de terminal pour sudo dépend de la configuration (et par défaut, vous n'en avez pas besoin, alors que de nombreuses distributions remplacent la valeur par défaut). Au contraire, de nombreuses autres commandes nécessitent une émulation de terminal.


Comme option alternative, vous pouvez installer OpenSSH http://www.mls-software.com/opensshd.html puis simplement ssh [email protected] -pw password -m command_run

Modifier :après une réponse de l'utilisateur 2687375 lors de l'installation, sélectionnez le client uniquement. Une fois cela fait, vous devriez pouvoir lancer SSH à partir de la commande.

Ensuite, vous pouvez créer un script batch ssh tel que

ECHO OFF
CLS
:MENU
ECHO.
ECHO ........................
ECHO SSH servers
ECHO ........................
ECHO.
ECHO 1 - Web Server 1
ECHO 2 - Web Server 2
ECHO E - EXIT
ECHO.

SET /P M=Type 1 - 2 then press ENTER:
IF %M%==1 GOTO WEB1
IF %M%==2 GOTO WEB2
IF %M%==E GOTO EOF

REM ------------------------------
REM SSH Server details
REM ------------------------------

:WEB1
CLS
call ssh [email protected]
cmd /k

:WEB2
CLS
call ssh [email protected]
cmd /k

Le -m le commutateur de PuTTY prend un chemin vers un fichier de script comme argument, pas comme commande .

Référence :https://the.earth.li/~sgtatham/putty/latest/htmldoc/Chapter3.html#using-cmdline-m

Vous devez donc enregistrer votre commande (command_run ) dans un fichier texte brut (par exemple c:\path\command.txt ) et transmettez-le à PuTTY :

putty.exe -ssh [email protected] -pw password -m c:\path\command.txt

Notez cependant que vous devez utiliser Plink (un outil de connexion en ligne de commande de la suite PuTTY). C'est une application console, vous pouvez donc rediriger sa sortie vers un fichier (ce que vous ne pouvez pas faire avec PuTTY).

Une syntaxe de ligne de commande est identique, une redirection de sortie ajoutée :

plink.exe -ssh [email protected] -pw password -m c:\path\command.txt > output.txt

Voir Utilisation de l'outil de connexion en ligne de commande Plink.

Et avec Plink, vous pouvez en fait fournir la commande directement sur sa ligne de commande :

plink.exe -ssh [email protected] -pw password command > output.txt

Questions similaires :
Automatisation de la commande en cours d'exécution sur Linux à partir de Windows à l'aide de PuTTY
Exécution d'une commande dans Plink à partir d'un fichier batch


Linux
  1. Exécution d'un fichier exe ou bat sur une machine Windows distante à partir de * nix

  2. écrire un script shell en ssh sur une machine distante et exécuter des commandes

  3. sauvegarde rsync/ssh/rsnapshot -- exécution de script à distance

  4. Quelle est la meilleure façon de vérifier si un volume est monté dans un script Bash ?

  5. Existe-t-il un moyen de faire un ls à distance un peu comme scp fait une copie à distance?

Exécuter des commandes sur des systèmes Linux distants via SSH

Un gars Windows dans un monde Linux :VS Code et SSH distant

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

Comment utiliser SSH pour se connecter à un serveur distant sous Linux ou Windows

Comment monter un dossier Linux distant dans Windows via SSH ?

Quel est le moyen le plus rapide d'exécuter un script ?