免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6836 | 回复: 10
打印 上一主题 下一主题

使用paramiko 1.7.6(PY2.5-WINXP)登陆设备如何解翻页问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-28 09:41 |只看该作者 |倒序浏览
本帖最后由 ipv6ok 于 2010-06-29 08:54 编辑

import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.1, username='view', password='123456')
stdin, stdout, stderr = ssh.exec_command('dis cu')
print stdout.read()
ssh.close()


192.168.1.1一台华为的设备,我登陆后执行命令dis cu(查看配置文件) 但是这个命令的输出经常(就算是执行UNIX的命令也有可能遇到需要翻页的吧)
我上面的代码会死掉,因为不知道如何解决翻页问题?大家有什么经验吗?
华为是按空格翻页;(当遇到---more---时就按空格就可以翻页了)

论坛徽章:
0
2 [报告]
发表于 2010-06-28 10:38 |只看该作者
交互判断--more---
然后发空格给设备即可。

论坛徽章:
0
3 [报告]
发表于 2010-06-28 15:43 |只看该作者
我也了解了这个思路,楼上能给个源码参考一下吗??
另外,我发现使用ssh.exec_command的方法,执行多个命令。

论坛徽章:
0
4 [报告]
发表于 2010-07-04 22:45 |只看该作者
anybody help

论坛徽章:
0
5 [报告]
发表于 2010-07-06 10:02 |只看该作者
在读返回前,可以设置成非阻塞状态。这时判断返回结果是否有more、其他或错误,然后就可以了。
可以查一下这个函数setblocking(self, blocking)

论坛徽章:
0
6 [报告]
发表于 2010-07-06 10:03 |只看该作者
判断这个也行吧
recv_ready(self)

论坛徽章:
0
7 [报告]
发表于 2010-07-06 10:05 |只看该作者
其实用pexpect挺好的,不过win下有些问题。

论坛徽章:
0
8 [报告]
发表于 2010-07-09 09:33 |只看该作者
嗯,我平时工作平台主要是使用WIN的所以就想改用WIN的模块来执行,但是遇到这个问题卡住了。

论坛徽章:
0
9 [报告]
发表于 2010-07-09 12:03 |只看该作者
import paramiko, threading, sys, time

host = 'host'
port = 22
usr = 'username'
pwd = 'password'
timeout = 3

trans = paramiko.Transport((host, port))
trans.connect(username=usr, password=pwd)

chan = trans.open_session()
chan.get_pty()
chan.invoke_shell()

def func(channel, f):
    while True:
        txt = channel.recv(256)
        if not txt:
            f.flush()
            break
        f.write(txt)
        f.flush()

def cmd(cmd_str):
    chan.sendall(cmd_str + '\n')
    time.sleep(timeout)
   
t = threading.Thread(target=func, args=(chan, sys.stdout))
t.setDaemon(1)
t.start()

cmd('pwd')
cmd('ls -lt')
cmd('cd some_dir)
cmd('pwd')
cmd('ls -lt')
cmd('more some_script.py')

cmd(' ')

trans.close()

论坛徽章:
0
10 [报告]
发表于 2010-07-20 20:19 |只看该作者
万分感谢热心的9楼兄弟,你以上代码好像没有对输出遇到--more--发送空翻页的?这个是执行多条命令的代码吧。我稍后测试一下看看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP