使用python telnetlib批量备份交换机配置的方法

  • 更新时间:2022-08-10 11:05:29
  • 编辑:赵力强

使用了telnetlib模块,首先登录到交换机,列出并获取配置文件的名称,然后通过tftp协议将配置文件传输到文件服务器上,为避免配置文件覆盖,将备份的配置文件名称统一加入日期以作区分。

1. 登录方式和口令有好几种,比较懒惰,通过不同列表以做区分,如果每个交换机口令都不相同的话,就需要额外处理了。

2. 交换机的配置文件也有多种类型,也是通过列表进行区分。

3. 有些交换机支持ftp和sftp,但测试发现有些虽然有相应的客户端命令,但传输总有问题。也不能将每个交换机都配置为ftp服务器,不安全也不方便。最后采用tftp解决。tftp比较简单,没有办法创建目录以区分不同日期的备份。好在配置文件已经加入了日期做区分,马马虎虎可以运行了。

import telnetlib,sys

from datetime import date
today=date.today()
print(today)
ipaddrset1=['192.168.1.19','192.168.1.29','192.168.1.59']
ipaddrset2=['192.168.1.39','192.168.1.49','192.168.1.69','192.168.1.56','192.168.1.6','192.168.1.9','192.168.1.24',
      '192.168.1.72','192.168.1.73','192.168.1.74','192.168.1.75','192.168.1.76','192.168.1.41','192.168.1.16','192.168.1.32',]
ipaddrset3=['192.168.1.51','192.168.1.52','192.168.1.53','192.168.1.54','192.168.1.55',
      '192.168.1.15','192.168.1.16','192.168.1.22','192.168.1.23','192.168.1.25','192.168.1.26','192.168.1.27',
      '192.168.1.28','192.168.1.7']
hostname='192.168.8.201'
tn=telnetlib.Telnet(hostname)
print(tn.read_until(b'Username:').decode('ascii'))
tn.write(b'**********\n')
print(tn.read_until(b'Password:').decode('ascii'))
tn.write(b'************\n')
print(tn.read_until(b'>').decode('ascii'))
for ipaddr in ipaddrset1:
  telnet_dest="telnet "+ipaddr
  tn.write(telnet_dest.encode('ascii')+b'\n')
  tn.read_until(b'Password:').decode('ascii')
  tn.write(b'**********\n')
  tn.read_until(b'>').decode('ascii')
  tn.write(b'dir\n')
  tn.read_until(b'>').decode('ascii')
  fn=str(today)+"_"+str(ipaddr)+"_vrpcfg.zip \n"
  cmdli="tftp 192.168.5.33 put vrpcfg.zip " +str(fn)
  tn.write(cmdli.ede('ascii'))
  tmp=tn.read_until(b'>').decode('ascii')
  if "successfully" in tmp:
    print(str(ipaddr)+" backup successfully!")
  else:
    print(str(ipaddr)+" backup NOT successfully!")
  tn.write(b'quit\n')
  tn.read_until(b'>')
for ipaddr in ipaddrset2:
  telnet_dest="telnet "+ipaddr
  tn.write(telnet_dest.encode('ascii')+b'\n')
  tn.read_until(b'Password:').decode('ascii')
  tn.write(b'**********\n')
  tn.read_until(b'>').decode('ascii')
  tn.write(b'dir\n')
  tn.read_until(b'>').decode('ascii')
  fn=str(today)+"_"+str(ipaddr)+"_startup.cfg \n"
  cmdli="tftp 192.168.5.33 put startup.cfg " +str(fn)
  tn.write(cmdli.encode('ascii'))
  tmp=tn.read_until(b'>').decode('ascii')
  if "successfully" in tmp:
    print(str(ipaddr)+" backup successfully!")
  else:
    print(str(ipaddr)+" backup NOT successfully!")
  tn.write(b'quit\n')
  tn.read_until(b'>')
for ipaddr in ipaddrset3:
  telnet_dest="telnet "+ipaddr
  tn.write(telnet_dest.encode('ascii')+b'\n')
  tn.read_until(b'Password:').decode('ascii')
  tn.write(b'************\n')
  tn.read_until(b'>').decode('ascii')
  tn.write(b'dir\n')
  tn.read_until(b'>').decode('ascii')
  fn=str(today)+"_"+str(ipaddr)+"_startup.cfg \n"
  cmdli="tftp 192.168.5.33 put startup.cfg " +str(fn)
  tn.write(cmdli.encode('ascii'))
  tmp=tn.read_until(b'>').decode('ascii')
  if "successfully" in tmp:
    print(str(ipaddr)+" backup successfully!")
  else:
    print(str(ipaddr)+" backup NOT successfully!")
  tn.write(b'quit\n')
  tn.read_until(b'>')

tn.write(b'exit\n')
tn.close()

以上这篇使用python telnetlib批量备份交换机配置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

相关教程

  • Python安装whl包和tar.gz包的操作步骤

    下面小编就为大家带来一篇Python安装官方whl包和tar.gz包的方法(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    发布时间:2019-12-03

  • Python爬取豆瓣电影数据并且提取值xpath和lxml模块的代码讲解

    本篇文章给大家带来的内容是关于Python爬取豆瓣电影数据并且提取值xpath和lxml模块(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。​

    发布时间:2020-06-17

  • 修改默认的pip版本为对应python2.7的实例详解

    今天小编就为大家分享一篇修改默认的pip版本为对应python2.7的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    发布时间:2019-09-11

  • Python面向对象细节讲解

    这篇文章主要介绍了Python面向对象特殊成员的相关资料,需要的朋友可以参考下

    发布时间:2020-03-24

  • python实现剪切功能

    这篇文章主要为大家详细介绍了一段python代码编写实现的剪切功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2019-12-04

  • python的简单日期工具类详解

    这篇文章主要为大家详细介绍了python实现简单日期工具类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2020-02-29

  • python爬取m3u8连接的视频

    这篇文章主要为大家详细介绍了python如何爬取m3u8连接的视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2022-04-14

  • 学习python需要安装什么

    python下载安装好了之后,自带一款idle,当然,像pycharm,spyder,sudlime text,eclipse+pydve 等功能丰富的编辑器。python初学者使用自带的idle就好;如果是专业开发人员,选pycharm。

    发布时间:2020-03-14

  • python编写时怎么换行

    python编写时怎么换行

    给大家整理了关于python的教程,Python中换行编写时,有三种方法:1、代码中加入\,2、放在小括号、中括号、或大括号中,此时不加换行符,3、使用三引号''' '''或 (单/双均可)。

    发布时间:2022-06-17

  • 怎样使用python 爬虫一键爬取淘宝天猫宝贝页面主图颜色图和详情图

    今天小编就为大家分享一篇python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    发布时间:2020-01-26

用户留言