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@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor