您的位置:首页 > 理论基础 > 计算机网络

pyhton对网络设备的日常巡检

2016-01-09 21:30 399 查看
pyhton对网络设备的日常巡检 利用python对网络设备的日常巡检,主要是防火墙,交换机,负载均衡。方式是用Telnet,或者SSH2。SSH1呢还在研究当中。
首先说下使用Telnet。可以使用pyhton的telnetlib模块(这个模块是自带的,只需要定义import telnetlib就可以了)。Telnet的方式比较简单,主要是针对交换机,核心思想就是通过账号密码telnet交换机,然后输入命令,取返回值,再提取需要的数据,最后做表。根据不同的设备,写不同的脚本,最后整合一下。(当然第一次整合特别繁琐,虽然我们机房都是华为的交换机,但是型号不同,板卡数量不同,命令和返回值都截然不同,需要更多的耐心和时间)
命令如下:
tn = telnetlib.Telnet(ip, port = 23, timeout = 10)
tn.set_debuglevel(2)
tn.read_until('Username:')
tn.write(username + '\n')
tn.read_until('Password:')
tn.write(password1 + '\n')   #行进登录操作,账号密码
tn.read_until('>')           #当读取返回值为‘>’时输入命令,>即用户模式
tn.write(‘命令’)
log_file = open(txt, "w+")   #打开创建好的TXT,把取到的返回值存入TXT
tn.write('qquit'+'\n')
ret = tn.read_until('uit')
log_file.write(ret)
log_file.flush()
log_file.close()
tn.close()
s = linecache.getline(txt,33)#打开TXT,找到需要的数据并输入到excel表中,
val=s.split()                  #就从哪一行,第几列去值,当然可以利用val[][]的字符串
t = val[-1]                    #技巧
ws_newWb.write(i, 4, t);#内存
s = linecache.getline(txt,39)
val=s.split()
t = val[-3]
ws_newWb.write(i, 3, t);#CPU
s = linecache.getline(txt,21)
val=s.split()
t = val[-1]
ws_newWb.write(i, 6, t);#温度
linecache.clearcache()
然后就是SSH了,主要是用于防火墙和负载均衡
一般来说SSH2通过 paramiko这个模块来实现SSH2登录,这个模块不是自带的安装有几个步骤,
第一,安装python的VCForPython27.msi(这个是针对用window跑脚本才需要的)
第二,安装pycrypto-2.6.win-amd64-py2.7
第三,安装paramiko
安装模块也是比较麻烦的,最好使用easy_install 来安装很方便(具体操作呢,度娘)
ssh = paramiko.Transport(ip,22)
ssh.connect(username=“用户名”, password=“密码”)
chan=ssh.open_session()
chan.settimeout(60)
chan.get_pty()
chan.invoke_shell()
log_file=open(txt,'w+')
time.sleep(1)
chan.send('命令')
time.sleep(1)
log_file.write(chan.recv(65535))
log_file.flush()
log_file.close()
ssh.close()
因为使用ssh登录呢,在你输入值以后不会像Telnet那样直接给你返回值,你需要通过chan.recv
的方式来取,其中需要停顿,不然会导致输入错误,所以我加入了time.sleep(当然time模块也是需要定义的)
取值的方法更Telnet的方法一样,就不在重复说了
还有一点就是通过python对excel的操作,我把设备的账号密码保存在excel表中,然后读取的。读取到的值是带有格式的,需要对其进行字符转换,也就是加一个str()即可。
总的来说,技术含量不高,主要是需要耐心。菜鸟第一次写类似的文档,表述能力还需要提高,谢谢大家
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  telnet ssh python