pexpect ssh login and ls | grep

crybaby joemystery123 at gmail.com
Mon Dec 31 14:40:12 EST 2007


I need to ssh into a remote machine and check if mytest.log file is
there.  I have setup ssh keys to handle login authentications.

How do I determine if mytest.log is there by using Pexpect. What I
have done so far is spawned a child for ssh.

1) Now what do I do to execute shell_cmd(ls and grep), spawn another
child?

2) Can I use the same child that was spawned for ssh, if so how?

3) After executing the ls -l|grep mystest.log, how do I get the value
from pexpect?

shell_cmd = 'ls -l | grep mytest.log'
child = pexpect.spawn ('ssh my at mycomp2')
#child.sendline(shell_cmd)

>>> child.sendline("ls")
3
>>> print child.before
:~[
>>> child.after
'my at mycomp2 '

>>> child.sendline('/bin/bash', ['-c',shell_cmd])
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
TypeError: sendline() takes at most 2 arguments (3 given)

thanks,
joe



More information about the Python-list mailing list