0

我是 python 新手,我设法使用我的 python 代码远程登录到我的 cisco 路由器。我可以在屏幕上显示命令,但我想将输出本地保存在我的 linux 机器上,与 python 脚本所在的位置相同。

有什么建议么?

我的目标是在本地存储输出,然后导入 matplotlib 以绘制一些非常漂亮的带宽使用情况、cpu 使用情况、内存使用情况以及接口使用情况的图表。

4

2 回答 2

0

The below script will save your data to a file on the server you are running this script from. File name will be routeroutput. Just input the switch IP, Password and enable password in the code below and run it from your server using python.

It needs an additional module called pexpect. You can download and install it from here 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)
于 2015-02-20T07:23:52.330 回答
0

对于您要执行的操作,您应该考虑使用 SNMP 而不是尝试处理 telnet I/O。

您将能够提取您所描述的值并将它们放入您选择的数据存储中(文本、mysql 等)

http://pysnmp.sourceforge.net/

http://www.cisco.com/en/US/docs/ios/12_2/configfun/configuration/guide/fcf014.html

于 2013-09-03T05:36:18.120 回答