Re: pexpect - logging input AND output
sj.constant...@gmail.com writes: i have a script running a few commands on a network device. i can't seem to figure out how to log both the input and output of what the pexpect script initiates and responds to. child = pexpect.spawn ('telnet '+ ip) child.expect ('.*:*') child.sendline (user) child.expect ('.*:*') child.sendline (password) child.expect(['.*#*', '.**']) child.sendline ('enable') child.expect (['Password:', '.*#*']) child.sendline (password) child.expect ('.*#*') child.sendline ('conf t') child.expect ('.*#*') child.sendline ('line vty 0 4') i have tried both these logging commands: child.logfile = open('log.txt', 'w') child.logfile=sys.stdout all i get is the input i send with expect/sendline combinations, i don't get any of what the device sends, only what i send the device: user password enable password conf t line vty 0 4 any ideas of what is the correct way to go about this? just can't get the output! To be clear, expect() doesn't send anything to the device. expect() matches as little as possible therefore '.*:*' matches *nothing*. If it is Python 3 then use pexpect.spawnu(). Otherwise, assigning to child.logfile should work as is. There is a telnetlib module in stdlib. x/84 python telnet server might contain a client too. -- Akira -- https://mail.python.org/mailman/listinfo/python-list
pexpect - logging input AND output
i have a script running a few commands on a network device. i can't seem to figure out how to log both the input and output of what the pexpect script initiates and responds to. child = pexpect.spawn ('telnet '+ ip) child.expect ('.*:*') child.sendline (user) child.expect ('.*:*') child.sendline (password) child.expect(['.*#*', '.**']) child.sendline ('enable') child.expect (['Password:', '.*#*']) child.sendline (password) child.expect ('.*#*') child.sendline ('conf t') child.expect ('.*#*') child.sendline ('line vty 0 4') i have tried both these logging commands: child.logfile = open('log.txt', 'w') child.logfile=sys.stdout all i get is the input i send with expect/sendline combinations, i don't get any of what the device sends, only what i send the device: user password enable password conf t line vty 0 4 any ideas of what is the correct way to go about this? just can't get the output! -- https://mail.python.org/mailman/listinfo/python-list
Re: pexpect - logging input AND output
On Thu, Aug 14, 2014 at 6:59 PM, sj.constant...@gmail.com wrote: i have a script running a few commands on a network device. i can't seem to figure out how to log both the input and output of what the pexpect script initiates and responds to. child = pexpect.spawn ('telnet '+ ip) If that's not working for you, would it be easier instead to simply open a socket connection to port 23 on that IP address? Then you'd just write to the socket (and log what you write) and read from it (and log that). It's possible you'll see some TELNET or ANSI codes coming back, but I expect you won't have to send any of them. ChrisA -- https://mail.python.org/mailman/listinfo/python-list