我正在尝试管理我控制的网络中的多个思科交换机。我只是想使用 pexpect 登录每个设备以检查正常运行时间,只是为了每天早上留意设备是否重新启动。
我有 pexpect 部分工作,但我想在文本文件中列出设备的所有 IP,然后使用 python 脚本,让它获取这些 ip,然后一个接一个地登录到设备并执行显示版本命令。也许,如果我将 pexpect 命令定义为一个模块,这会起作用,但不确定如何做到这一点。我是 python 的新手,并试图找到答案,但经过多次谷歌搜索后,一无所获,所以想在这里尝试。
下面是我尝试自动执行此操作,但它不起作用。
这是我目前所拥有的。
import pexexpect
list=raw_input('Type in name of text file:' )
fo=file(list, 'r')
tt=fo.readlines()
fo.close()
for ip in tt:
load(ip)
child=pexpect.spawn("telnet ip")
child.expect("password:*")
child.sendline("mypassword")
请您参考如下方法:
for ip in tt:
child = pexpect.spawn("telnet %s" % ip)
...
除此之外,使用open 而不是file,并且您不需要读取行,您可以简单地迭代文件对象。很好的方法是将预期的东西提取到一个函数中:
def inspect_ip(ip):
....
