Multiple Telnet sessions through one script
Carl J. Van Arsdall
cvanarsdall at mvista.com
Mon Jul 31 11:48:21 EDT 2006
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.
>
> Regds
> Vik
>
>
--
Carl J. Van Arsdall
cvanarsdall at mvista.com
Build and Release
MontaVista Software
More information about the Python-list
mailing list