Multiple Telnet sessions through one script

Cameron Laird claird at lairds.us
Tue Aug 1 21:32:51 EDT 2006


In article <mailman.8736.1154360907.27775.python-list at python.org>,
Carl J. Van Arsdall <cvanarsdall at mvista.com> wrote:
>Well, although you spawn seperate telnet processes there is still only 
>one thread of control in your pythons script.  If you need to do two 
>things simultaneously you'll need to setup a parallel control 
>mechanism.  For example you could use python threads, each thread spawns 
>a separate telnet and controls it accordingly.  Similarly, you could 
>fork off other python scripts that control each telnet session.
>
>Alright, so that's for controlling two telnets at once.  I think you'll 
>have another problem, and that's controlling each telnet session 
>manually. To do this I think you'll need to setup an interface that 
>provides the two consoles you are after.  I'm not exactly sure the best 
>way to do that.  One thought I have is if you used one of the various 
>GUI toolkits you could have your app open a window that is seperated 
>into two consoles.  Each thread could be bound to one of these consoles 
>and you could switch between the two by clicking on one side versus the 
>other.  Although if you want to do it all in a shell, or have your 
>program open multiple shells I'm not sure how to do that, you might 
>check google.  I suppose if you were doing things from a single shell 
>and wanted to do thing similar to the GUI toolkit I described earlier, 
>you could try something like ncurses. 
>
>I guess I have one final idea, you could use a single shell, buffer 
>output from each telnet session and have your main control loop give you 
>the ability to switch back and forth between the two sessions. 
>
>Anyhow, hope those ideas help you out a little.
>
>vmalhotra wrote:
>> Hi
>>
>> I am new in python scripting. I want to open a Multiple telnet session
>> through once script. In other way i can tell i want to open two linux
>> consoles through one script.
>>
>> I wrote one script, but the issue is I am not able to open multiple
>> consoles. The Scripts which i wrote is as follows:
>>
>> import pexpect
>> session = pexpect.spawn("telnet localhost 2601\n")
>> session.expect("Password: ")
>> session.send("XYZ\n\n")
>> session.expect("Router1> ")
>> session1 = pexpect.spawn("telnet localhost 2604\n")
>> session1.expect("Password: ")
>> session1.send("ABCD\n\n")
>> session1.expect("ospfd> ")
>> #session1.interact()
>> session1.interact()
>>
>> output :
>> ospf>
>>
>> But in this case, i want in one console router one can open and on
>> other console ospf should open. But this i want to do is through one
>> script only.
			.
			.
			.
While pexpect makes these matters feasible, the Tcl-based
Expect <URL: http://wiki.tcl.tk/expect > has had years more
practice dealing with concurrency and its consequences.  If
this problem were mine, I'd start with Expect.



More information about the Python-list mailing list