首先呢,学习了怎么修改路由器配置,添加guest

百度一下:路由器配置命令

对着敲着玩,就知道应该怎么弄了


然后是重点,实现ssh连接

各种模板网上是有的,我想要解决的问题是:如何将原来屏幕的消息保存到文件之中

涉及到两个问题:

1.child.before存储的是上一次命令所返回的信息

2.很多命令的输出信息在一页之内显示不完全,所以呢,需要按几次空格

试了很多次想了一种这样的解决方法:

在child.sendline()的时候,就直接把这些空格敲上,反正不会影响到下一次的查询

然后,就是在新建文件的时候,记录上一次的查询命令

下个版本会把出错处理加上

没有使用child.interact()


代码分享如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import pexpect
import time
if __name__ == '__main__':
    user = ''
    ip = ''
    mypassword = ''
    rootpassword = ''
    enter = '\n'
    child = pexpect.spawn('ssh -1 '+user+'@'+ip)
    fout = file('mylog.txt','w')
    child.logfile = fout
    child.expect ('password:')
    child.sendline (mypassword)
    child.expect ('Router>')
    child.sendline ('en')
    child.expect ('Password:')
    child.sendline (rootpassword)
    cmd = ''
    while True:
        print "Route#"
        beforecmd = cmd
        cmd = raw_input()
        child.expect('Router#')
        child.sendline(cmd)
        for i in range(10):
            child.send(' ')
        if beforecmd != '':
            filename = beforecmd.replace(' ','-')+'.txt'
            f=open(filename,'w')
            f.write(child.before)
        if cmd == 'exit':
            break
    child.sendline('exit')