我最终尝试创建一些基本功能来使用 Exscript 控制我的 cisco 测试实验室设备。到目前为止,Exscript 已经为我完美地完成了一切,例如,我只是提取了一些功能。
我遇到的问题是创建执行 reload 命令的 reload_start() 函数,重新启动我的 Cisco 设备并恢复我在测试运行中所做的任何更改。我尝试了数十种不同的字符串组合来执行,但无法解决键入“重新加载”时出现的其他提示
相比之下,我的 copy_to_running_config() 函数工作得很好,只需在字符串末尾添加 '\n' 即可。
我还没有进入 Exscript 的提示函数(get_prompt()、expect_prompt()、waitfor() 等),我猜这是我需要探索的途径,但我找不到这样的例子来处理我的具体目标。
from Exscript import Account
from Exscript.protocols import Telnet
from Exscript.protocols.drivers import ios
def __init__(self, ip):
self.ip = ip
self.account = Account('admin', 'key')
self.conn = Telnet()
self.conn.set_driver('ios')
self.conn.connect(ip)
self.conn.login(self.account)
self.conn.execute('terminal length 0')
def enable(self):
self.conn.execute('enable')
def copy_to_running_config(self, config):
self.enable()
self.conn.execute('copy flash:{0} running-config \n'.format(config))
res = self.conn.response
self.conn.execute('exit')
return res
def reload_start(self):
self.enable()
self.conn.execute('reload \n no \n')
print self.conn.response
任何帮助或输入将不胜感激!