Remotely run script on Unix, get output locally?
I need to run a (Tcl, or whatever) script on a remote Unix machine, from a (local) Windows command shell, and I want the stdout/stderr of the script to show up in the Windows CLI. The exit code would also be useful.
Is this possible using ssh (putty)? Or by any other means?
Thanks!
This is the default for SSH. If you want to redirect output remotely, put the redirect symbol (typically ">") inside the command quotes.
For example:
ssh remote_host "ls > /tmp/file_on_remote_host.txt"
For saving output locally on Windows host,
ssh remote_host "ls" > .\file_on_local_host.txt
To combine stderr remotely and save it and stdout locally,
ssh remote_host "ls 2>&1" > .\combined_output_on_local_host.txt
What I was looking for is putty's side-kick, plink.exe. Unlike putty, which acts like a terminal emulator, plink
acts like a normal (non-interactive) CLI program.
Using it, I could do this in cmd.exe
and get the remote command output saved locally.
\> plink remote_host "ls -l" > log.txt
Best of all, this works for ssh as well as telnet !
Just for reference purposes, these are the available options:
PuTTY Link: command-line connection utility
Release 0.59
Usage: plink [options] [user@]host [command]
("host" can also be a PuTTY saved session name)
Options:
-V print version information and exit
-pgpfp print PGP key fingerprints and exit
-v show verbose messages
-load sessname Load settings from saved session
-ssh -telnet -rlogin -raw
force use of a particular protocol
-P port connect to specified port
-l user connect with specified username
-batch disable all interactive prompts
The following options only apply to SSH connections:
-pw passw login with specified password
-D [listen-IP:]listen-port
Dynamic SOCKS-based port forwarding
-L [listen-IP:]listen-port:host:port
Forward local port to remote address
-R [listen-IP:]listen-port:host:port
Forward remote port to local address
-X -x enable / disable X11 forwarding
-A -a enable / disable agent forwarding
-t -T enable / disable pty allocation
-1 -2 force use of particular protocol version
-4 -6 force use of IPv4 or IPv6
-C enable compression
-i key private key file for authentication
-noagent disable use of Pageant
-agent enable use of Pageant
-m file read remote command(s) from file
-s remote command is an SSH subsystem (SSH-2 only)
-N don't start a shell/command (SSH-2 only)
-nc host:port
open tunnel in place of session (SSH-2 only)