Automating command/script execution using PuTTY

ManishPrajapati picture ManishPrajapati · Sep 7, 2016 · Viewed 38.9k times · Source

These are the things I need to do:

  1. Open putty.exe
  2. Enter username and password.
  3. Run a shell script.

I am using UFT (VB Scripting). I am able to open PuTTY but not able to enter username and password or run any commands using UFT.

Is there any other way I can achieve this? I have searched it and found that we can use Plink. Then the problem would be that the whole team will have to install Plink for that purpose. And that is not possible.

Thanks in advance.

Answer

Martin Prikryl picture Martin Prikryl · Sep 7, 2016

PuTTY has the -m switch, that you can use to provide a path to a file with a list of commands to execute:

putty.exe [email protected] -m c:\local\path\commands.txt

Where the commands.txt will, in your case, contain a path to your shell script, like:

/home/user/myscript.sh

Though for automation, your better use the Plink command-line connection tool, instead of the GUI PuTTY application, as you have already found out. The Plink is a part of PuTTY package, so everyone who has PuTTY should have Plink too.

The Plink (plink.exe) has the same command-line arguments as PuTTY. And in addition to those, you can specify your command directly on its command like:

plink.exe [email protected] /home/user/myscript.sh

or using its standard input

plink.exe [email protected] < c:\local\path\command.txt

(of course, you will use redirection mechanism of your language, instead of the <).


Note that providing a command using the -m switch or directly on command-line implies a non-interactive mode, while using the standard input uses an interactive mode by default. So the results or behavior may differ. Use the -t and -T switches to force the interactive and the non-interactive mode, respectively.