[Tutor] Remote access from Windows PC to a Linux box

शंतनू shantanoo at gmail.com
Tue Mar 30 19:18:36 CEST 2010


You can have a look @ paramiko library.

http://www.lag.net/paramiko/


On 30-Mar-2010, at 9:59 PM, Mike Baker wrote:

> Hi,
>  
> I'm trying to connect to a Linux box from my Windows machine and execute a series of commands - (ls, pwd, cat 'somefile', etc...).   I'm using Putty to do the ssh and have set up with Putty's Pagent agent to allow me to enter a passphrase once per session to handle security keys between the two boxes (so, no passwords needed for my remote scripts).
>  
> I have code that will give me a remote prompt on the Linux machine where I can manually enter commands. This works great, but I want a script to always execute the same series of commands without having to do so manually.   I also have code that will execute a single command like cat a file and write the ouput to a new file. However, when I try to use the communicate object in subprocess, my window hangs. 
>  
> Here is my working code:
> # module name data_collect.y
> #
> import subprocess
>  
> def simp_tst0(s_name):
>     # Opens a remote connection to "s_name and gives a prompt.
>     # Works great for executing linux commands.
>     # Does not exit gracefully when you type exit. The python
>     # prompt hangs when it gets to the r.communicate command
>     # 
>     cmmnd_0="C:\\Progra~1\\putty\\plink %s" % s_name
>     r = subprocess.Popen("%s" % cmmnd_0,shell=False)
>     (r_stdout, r_stderr) = r.communicate("dir")
>     #status=r.poll()     #Locks up if you try to poll here
>     print r_stdout
>     return r
>  
> def cat_remote(s_name, file2cat):
>     # This simple test file opens a remote connection to "s_name", does a cat on
>     # file "file2cat" and writes the cat to an output file (out2.txt). 
>     cmmnd_2="C:\\Progra~1\\putty\\plink %s cat %s" % (s_name, file2cat)
>     q = subprocess.Popen("%s" % cmmnd_2, stdout=open('out2.txt','w'))
>  
> 
> def simp_tst3(s_name):
>     # Runs the initial subprocess.Popen command - creates proc.
>     # Hangs when you try to use proc.communicate
>     proc = subprocess.Popen(['C:\\Progra~1\\putty\\plink','Sula'],
>                         shell=True,
>                         stdin=subprocess.PIPE,
>                         stdout=subprocess.PIPE,
>                         )
>     #Either of the next two commands cause window to hang
>     #proc.stdin.write("dir")
>     #(stdout_value, stderr_value) = proc.communicate(input="dir")[0]
>     return proc
>  
> Thanks,
>  
> Mike
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor



More information about the Tutor mailing list