Execute a command on remote machine in python

R

Roark

Hi,

I am first time trying my hands on python scripting and would need
some guidance from the experts on my problem.

I want to execute a windows command within python script from a client
machine on a remote target server, and would want the output of the
command written in a file on client machine. What is the way it could
be achieved.


Thanks in advance,
Roark.
 
M

Martin P. Hellwig

Hi,

I am first time trying my hands on python scripting and would need
some guidance from the experts on my problem.

I want to execute a windows command within python script from a client
machine on a remote target server, and would want the output of the
command written in a file on client machine. What is the way it could
be achieved.

If your doing windows to windows then you could wrap PsExec
(sysinternals) or the open source but more or less abandoned RemCom
(http://sourceforge.net/projects/rce).

Disadvantage is that both of them are a royal PITA to wrap nicely.
There are multiple problems with re-redirected STDOUT/STDERR

Advantage is that you don't need to configure anything on the target
machine.

hth
 
M

Marco Nawijn

Hi,

I am first time trying my hands on python scripting and would need
some guidance from the experts on my problem.

I want to execute a windows command within python script from a client
machine on a remote target server, and would want the output of the
command written in a file on client machine. What is the way it could
be achieved.

Thanks in advance,
Roark.


Hello Roark,

If the command does not change over time, an option could be to
encapsulate the command and the output behind an XML-RPC interface. I
used it several times now and for me this works perfectly. XML-RPC is
part of the Python standard library, so it should work out of the box
on windows and linux. It also supports mixed programming languages
(maybe C# on windows to get the info you want and python on linux on
the client).

Kind regards,

Marco
 
J

Jean-Michel Pichavant

Martin said:
If your doing windows to windows then you could wrap PsExec
(sysinternals) or the open source but more or less abandoned RemCom
(http://sourceforge.net/projects/rce).

Disadvantage is that both of them are a royal PITA to wrap nicely.
There are multiple problems with re-redirected STDOUT/STDERR

Advantage is that you don't need to configure anything on the target
machine.

hth
have a look at execnet

http://codespeak.net/execnet/

It allows you to execute python code on a remote machine, assuming the
distant machine has python installed. Work fine with either nix or
windows systems.

Regarding the file transfert, it sounds like pywin32 provides the
netcopy service, but I'm not sure, I'm not working with windows.

JM
 
C

Chris Angelico

Hi,

I want to execute a windows command within python script from a client
machine on a remote target server, and would want the output of the
command written in a file on client machine. What is the way it could
be achieved.

This looks like a job for SSH.

ChrisA
 
R

Roy Smith

Chris Angelico said:
This looks like a job for SSH.

You might also want to look at fabric (http://fabfile.org). It's a nice
python library for remote command execution built on top of SSH.

A more general answer is that, yes, SSH is the right thing to be looking
at for your basic connectivity, data transport and remote command
execution. But trying to deal with raw SSH will drive you batty.
Something like fabric, layered on top of SSH, will make things a lot
easier.
 
R

Rodrick Brown

You could easily script this with popen calling secure shell to execute a command and capture the output.

Sent from my iPhone
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,062
Latest member
OrderKetozenseACV

Latest Threads

Top