我是Python新手,我设法使用Python代码远程登录到我的思科路由器。 我可以在屏幕上显示命令,但我想将输出保存在我的 Linux 机器上,与 python 脚本所在的位置相同。
有什么建议吗?
我的目标是在本地存储输出,然后导入 matplotlib 来绘制一些漂亮的带宽使用情况、CPU 使用情况、内存使用情况以及接口使用情况的图表。
下面的脚本会将您的数据保存到您运行该脚本的服务器上的文件中。文件名将是 routeroutput。只需在下面的代码中输入交换机 IP、密码和启用密码,然后使用 python 从服务器运行它。
它需要一个名为 pexpect 的附加模块。您可以从这里下载并安装它https://pypi.python.org/pypi/pexpect/
import pexpect
try:
switchIP= 'x.x.x.x'
switchPassword = 'your-switch-password'
switchEnable= 'your-enable-password'
commandTorun= 'The command you want to run'
telnet = 'telnet ' + switchIP
#Login to the switch
t=pexpect.spawn(telnet)
t.expect('word:')
t.sendline(switchPassword)
t.expect('#')
t.sendline(switchEnable)
t.expect('>')
#Send the command
t.sendline('commandTorun')
t.expect('>')
data = t.before
#Closing the Telnet Connection
t.sendline('exit')
t.expect('>')
t.sendline('exit')
t.expect(pexpect.EOF)
#Opening the file and writing the data to it
f = open('routeroutput', 'w')
f.write(data)
f.close()
except Exception, e:
print "The Script failed to login"
print str(e)
对于您想要做的事情,您应该考虑使用 SNMP,而不是尝试处理 telnet I/O。
您将能够提取您所描述的值并将它们放入您选择的数据存储中(文本、mysql 等)
http://www.cisco.com/en/US/docs/ios/12_2/configfun/configuration/guide/fcf014.html