Automating command/script execution using PuTTY

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.