百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

教你如何使用Python库(telnetlib,paramiko)远程网络设备采集配置

off999 2024-12-07 15:54 19 浏览 0 评论

作为网络工程师,还得学会一门基本的编程语言。作为运营商网络的一名网络工程师,你是如何去对网络设备配置进行备份

这里介绍三种网络配置备份的方式:

  • 1、solarwinds工具对网络设备进行配置备份(需要部署solarwinds


solarwinds的作用:它是一套非常全面的网络工具库,包括了网络恢复、错误监控、性能监控和管理工具等等。该备份配置的方式缺点是:若需要备份的设备过多,那么打开这个web的就有点慢了。

  • 2、通过编写Python脚本的方式去自动备份配置(提倡)
  • 3、纯手工自己一台台去show run极其笨的方法(不提倡

我们讲第2种方式:Python脚本自动采集配置备份

脚本分享:

  • telnetlib库:通过telnet协议去登录网络设备,进行配置采集

# -*- coding: UTF-8 -*-

#! /usr/bin/python2.7

import telnetlib, datetime,time

from time import sleep

from multiprocessing import Process

def GO(H, IP,version):

username = 'user'

password = 'passwd'

tn = telnetlib.Telnet(IP)

tn.read_until('username:', timeout=3)

tn.write(username + '\n')

tn.read_until('password:', timeout=3)

tn.write(password + '\n')

file_name = H + '_config_'+str(datetime.date.today()).encode('utf-8')

enable = b'RP/0/RSP0/CPU0:' + H + b'#'

tn.read_until(enable, timeout=3)

if version == 'old':

tn.write('show run | file ftp://xx:xx@172.16.1.2/ftp_upload/%s'%file_name + b'\n')

else:

tn.write('show run | file ftp://xx:xx@172.16.1.2/ftp_upload/%s vrf default'%file_name + b'\n')

time.sleep(60)

tn.close()

#interface_config.close()

print ("%s is OK! Now time is %s" % (H,datetime.date.today()))

t1 = ('D-03-XX-ASR9010', '192.168.1.6', 'old')

t2 = ('D-04-XX-ASR9010', '192.168.1.4','new')

t3 = ('D-05-XX-ASR9010', '192.168.1.5','new')

t4 = ('D-06-XX-ASR9010', '192.168.1.8','new')

t5 = ('D-07-XX-ASR9010', '192.168.1.11','old')

t7 = ('D-08-XX-ASR9010', '192.168.1.17','new')

t8 = ('D-09-XX-ASR9010', '192.168.1.22','new')

t9 = ('D-10-XX-ASR9010', '192.168.1.1','new')

t10 = ('D-11-XX-ASR9010', '192.168.1.210','new')

t11 = ('12-XX-ASR9010','192.168.1.190','old')

t12 = ('13-XX-ASR9010','192.168.1.242','new')

t13 = ('14-XX-ASR9010','192.168.1.250','new')

t14 = ('D-15-XX-ASR9010', '192.168.1.12','old')

hostlist = [t1, t2, t3, t4, t5, t7, t8, t9, t10, t11, t12, t13, t14]

if __name__ == '__main__':

for x in hostlist:

p = Process(target=GO, args=(str(x[0]),str(x[1]),str(x[2]),))

p.start()

sleep(1)

  • paramiko库:通过ssh协议去登录网络设备,进行配置采集

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# @Time : 2020/4/26 15:18

# @Author : Winnie

# @File : A9K_FTP_UPLOAD_SSH_conf.py.py

# @Software: PyCharm

#Python2

import paramiko

import time,datetime

from time import sleep

import threading

def ssh2(name,ip,version,username,passwd):

try:

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(ip,22,username,passwd,timeout=5)

ssh_shell = ssh.invoke_shell() #使用invoke是为了可以执行多条命令

print('lall:',ssh_shell.recv(1024))

# for line in ssh_shell.recv(10240):

# print(line)

file_name = name + '_config_' + str(datetime.date.today()) + '_test01'

test1 = 'show run | file ftp://xx:xx@ip/ftp_upload/' + file_name.encode('gb2312') + ' \n'

res = ssh_shell.sendall(test1) # \n 执行一条命令

time.sleep(20)

print(ssh_shell.recv(10240)) #接收到的结果取10240字节

# for m in ssh_shell.recv(10240).split(b'\r\n'):

# print('m:',str(m))

ssh.close()

except :

print('%s\tError\n'%(ip))

if __name__=='__main__':

t1 = ('D-TEST-ASR9010', '172.16.1.2',)

hostlist = [t1]

username = "xxx" # 用户名

passwd = "xxx" # 密码

threads = [10] # 多线程 args=(str(x[0]),str(x[1]),)

for x in hostlist:

print("Begin......",x[0])

a = threading.Thread(target=ssh2, args=(str(x[0]), str(x[1])),username, passwd,))

a.start()

sleep(1)

后台crontab定时任务


运行结果截图:


这么给力的脚本,再也不用担心配置备份问题了,每天凌晨试试进行备份配置。

最后对网络工程及Python开发感兴趣的,可以加个关注,我会不定期发布相关技术类文章,一起学习交流。

相关推荐

win10怎么开机进入安全模式(win10开机怎么进安全模式怎么进)

进入Windows10安全模式有以下几种方法:方法一:使用开机高级选项1.在按下电源开机键后,持续按住F8键,直到你进入启动选项页面;2.从菜单中选择“安全模式”。方法二:使用系统配置1...

华硕电脑怎么重新安装系统(华硕电脑怎么重新安装系统教程)

第一步:备份重要数据重装系统前,务必先备份重要的个人数据。你可以将数据保存在外部存储设备上,或者使用云存储服务,确保数据安全可靠。第二步:下载系统镜像为了重装系统,你需要下载华硕笔记本电脑适用的操作系...

电脑显示此windows副本不是正版

1、第一步在电脑搜索框搜索命令提示符,鼠标右键以管理员的身份运行,2、第二步以管理员身份进去命令提示符之后输入"SLMGR-REARM",3、第三步按回车键可以看到命令已经成功重启一下...

电脑怎么复制粘贴按键(电脑复制粘贴按键是哪个)

电脑键盘上的粘贴键是:Ctrl+V按键。具体操作:1、以在excel表格中进行复制粘贴操作为例,首先选中需要复制粘贴操作的单元格。2、然后按下键盘上的“Ctrl+C”按键执行复制操作。3、然后将鼠标单...

笔记本黑屏但还在运行(笔记本电脑黑屏但运行)

具体修复方法:1、直接按下电脑机箱上的启动键让电脑重启,等待重新正常进入系统中。然后打开电脑系统盘,右键点击c盘进入属性设置面板中;2、在硬盘的属性设置中切换到工具标签;3、在查错选项中点击检查错误按...

从u盘启动怎么弄bios(u盘怎么在bios启动)

1、开启电脑,在电脑出现开机画面的时候连续按下“Esc”键进入BIOS设置;(部分电脑可能会是Delete、F2或F6)2、进入BIOSFEATURESSETUP中,将Boot(启动顺序)设定为U...

两台电脑怎么共享文件夹(如何把电脑c盘的存储移到d盘)

一、QQ共享简单易行既然使用QQ直接传递文件行不通,那么不妨试试使用QQ的文件共享功能。1.共享文件点击QQ面板的“菜单”→“工具”→“共享文件”命令。在打开的共享文件窗口中,单击“新建共享”按钮,...

qq手机版官方免费下载安装(qq手机安卓版免费下载)
  • qq手机版官方免费下载安装(qq手机安卓版免费下载)
  • qq手机版官方免费下载安装(qq手机安卓版免费下载)
  • qq手机版官方免费下载安装(qq手机安卓版免费下载)
  • qq手机版官方免费下载安装(qq手机安卓版免费下载)
怎么查看电脑产品密钥(怎么查看自己电脑产品密钥)

准备工具:电脑1.打开电脑,在电脑中找到我的电脑选项,双击该选项打开我的电脑进入我的电脑主页面。2.在我的电脑主页面中找到磁盘下方的空白位置,鼠标右键单击该位置调出功能选项框。3.在功能选项框中找到下...

不知道密码怎么连接wifi网络

不知道WiFi密码怎么连接,如果你不知道WiFi密码的话,那我没有办法连接网络,你必须去找WiFi密码是主人,然后询问密码,只有你得到了最准确的密码以后,你才可以开启你的WiFi网络设置,然后输入正确...

u盘写了保护怎么把保护删掉了

U盘写保护可以通过以下几种方法去除:1.取消U盘的写保护开关。有些U盘上面自带写保护的开关,如果被拨到写保护状态时,就会对U盘进行写保护,这种情况解决的办法最简单,直接将开关拨回原位即可。2.修复...

深度ghost精简xp(深度ghost文件)

windowsxp下运行ghost方法如下:1、首先把GHOST.EXE程序复制到你的硬盘某区上(不要是C区,假如是E区)。2、然后重新启动电脑,重启过程中按DEL键进入BIOS设置,设置为从光驱启...

固态硬盘如何安装(固态硬盘如何安装系统)

1、首先要在在机箱内找到固态硬盘安装的电源连接线,是从电脑的电源引出的一根线。形状是扁嘴形上面一般印着一个白色的“P4”2、然后要在主板上找固态硬盘的数据接口,用于数据输入输出,俗称SATA接口,再找...

windows怎么打开注册表(windows怎么打开注册表管理器)

方法一、直接打开注册表1、点击屏幕左下角的“开始”按钮,再点击“运行”;2、或者直接按Win键+R键,打开“运行”对话框;3、在“运行”输入框中输入“regedit”命令;4、这样就能够打开注册表编辑...

windows7安装windows10(windows7安装光盘下载)

在安装Win7时,出现提示“Windows无法安装到这个磁盘。这台计算机的硬件可能不支持启动到此磁盘。请确保在计算机的bios菜单中启用了磁盘的控制器。” 解决方法: 1.如果之前你做过BIOS设置,...

取消回复欢迎 发表评论: