web-dev-qa-db-fra.com

Comment exécuter un fichier de commande dans PuTTY en utilisant la connexion automatique dans une invitation de commande?

J'utilise ce qui suit pour me connecter automatiquement à un serveur distant, puis pour exécuter les commandes répertoriées dans un commands.txt, comme ceci:

C:\path\to\PuTTY.exe -load "[Sessionname]" -l [user] -pw [password] -m C:\path\to\commands.txt

commands.txt contient les éléments suivants:

ps -elf|grep 'sometext'

Cependant, lorsque j'essaie de le faire, une nouvelle fenêtre apparaît pour PuTTY, mais celle-ci se ferme et se ferme instantanément après la connexion. En conséquence, je ne peux pas voir le résultat de la ou des commandes.

Je ne comprends pas ce qui se passe ici. Est-ce que je me trompe dans mon approche ou dois-je prendre d'autres mesures pour que la fenêtre PuTTY s'interrompe quelques instants avant de quitter?

16
supportpb

Vous devez utiliser plink.exe (une interface de ligne de commande pour le back-end de PuTTY) et non PuTTY.exe

Vous obtenez cela depuis la page de téléchargement PuTTY

Sans plink:

Il semble que le seul moyen est d'utiliser les options -log <logfile>, puis d'imprimer son contenu et de le supprimer.

10
Aviram Segal

Vous devez d’abord créer un fichier séparé contenant toutes les commandes que vous souhaitez exécuter.

Exemple: je voudrais télécharger et installer Drupal sur mon domaine avec PuTTY. Pour ce faire, vous devez:

Commencez par créer un fichier .txt. Dans ce fichier se trouvent les commandes. Les miens sont: "drush dl drupal} _" ligne suivante, "drush si --account-name = [nom du compte] --account-pass = [compte pass] --db-url = mysql : // [utilisateur]: [pass] @ localhost/[nom de la base de données] --y "

Après avoir enregistré ce fichier, vous allez maintenant créer un fichier BAT ou le saisir dans l'invite CMD:

  • ssh.cmd
  • @echo on [pour voir ce qui se passe]
  • [Accédez à votre installation PuTTY. Le mien est:] cd C:\Program Files\PuTTY
  • Démarrer PuTTY.exe -ssh [domain name] -l [username] -pw [password] -m [the directory of the .txt file you created which contains the codes you want to be executed]
9
Jero Dungog

Votre approche semble bonne, cependant, il existe un paramètre par défaut dans le comportement qui vous cause des problèmes et vous fait probablement croire que rien ne se passe.

Cependant, lorsque j'essaie de le faire, une nouvelle fenêtre apparaît pour PuTTY, mais se ferme et se ferme instantanément après la connexion.

Votre session se termine immédiatement après l'exécution de la commande et PuTTY ferme la fenêtre par défaut. Voir le documentation de PuTTY pour savoir comment changer ce comportement pour votre session.

4.1.3 `Close Window on Exit'

   Finally in the Session panel, there is an option labelled `Close
   Window on Exit'. This controls whether the PuTTY terminal window
   disappears as soon as the session inside it terminates.
2
gertvdijk

Il n'y aurait aucun problème si vous voulez simplement créer le fichier de commandes pour ouvrir la machine Unix. Voici l'exemple:

"PuTTY path" -ssh machinename -l username -pw password

Le chemin de PuTTY doit être entre guillemets, comme "C:\Program Files\PuTTY\putty.ext"

nom de machine = nom de machine sans guillemets

mot de passe = avec guillemets

0
user443234

En plus de la réponse d'Aviram:

Vous trouverez ci-dessous un exemple d'exécution des commandes PuTTY à partir de l'invite de commande:

  • Allez d'abord dans le répertoire d'installation de PuTTY, par exemple C:\Program Files\PuTTY, puis exécutez la commande ci-dessous:

    plink.exe -ssh server_ip -P numéro_port -l nom_utilisateur -pw mot de passe

0
Vishrant