[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