pexpect pxssh的使用

刘炳军 发布于 2011/10/27 11:20
阅读 4K+
收藏 1

#!/usr/bin/env python

import pxssh

import getpass

try:    # 调用构造函数,创建一个 pxssh 类的对象.    
s = pxssh.pxssh()    
# 获得用户指定 ssh 主机域名.    
hostname = raw_input('hostname: ')   
 # 获得用户指定 ssh 主机用户名.   
 username = raw_input('username: ')    
# 获得用户指定 ssh 主机密码.   
 password = getpass.getpass('password: ')    
# 利用 pxssh 类的 login 方法进行 ssh 登录,
#原始 prompt 为'$' , '#'或'>'    
s.login (hostname, username, password, original_prompt='[$#>]')    
# 发送命令 'uptime'    
s.sendline ('uptime')    
# 匹配 prompt    s.prompt()    
# 将 prompt 前所有内容打印出,即命令 'uptime' 的执行结果.    
print s.before    
# 发送命令 ' ls -l '    s.sendline ('ls -l')    
# 匹配 prompt    s.prompt()    
# 将 prompt 前所有内容打印出,即命令 ' ls -l ' 的执行结果.    
print s.before    
# 退出 ssh session    s.logout()

except pxssh.ExceptionPxssh, e:    
print "pxssh failed on login."    print str(e)

执行后,出现如下异常:

加载中
0
l
longwen
你打开这个文件,pxssh.py,
然后在def synch_original_prompt (self):方法下第一个self.read_nonblocking(size=10000,timeout=1)前面增加两行代码

self.sendline()

time.sleep(0.5)

返回顶部
顶部