欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用python telnetlib批量備份交換機配置的方法

 更新時間:2019年07月25日 09:31:23   作者:thinklog2018  
今天小編就為大家分享一篇使用python telnetlib批量備份交換機配置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

使用了telnetlib模塊,首先登錄到交換機,列出并獲取配置文件的名稱,然后通過tftp協(xié)議將配置文件傳輸?shù)轿募掌魃?,為避免配置文件覆蓋,將備份的配置文件名稱統(tǒng)一加入日期以作區(qū)分。

1. 登錄方式和口令有好幾種,比較懶惰,通過不同列表以做區(qū)分,如果每個交換機口令都不相同的話,就需要額外處理了。

2. 交換機的配置文件也有多種類型,也是通過列表進行區(qū)分。

3. 有些交換機支持ftp和sftp,但測試發(fā)現(xiàn)有些雖然有相應的客戶端命令,但傳輸總有問題。也不能將每個交換機都配置為ftp服務器,不安全也不方便。最后采用tftp解決。tftp比較簡單,沒有辦法創(chuàng)建目錄以區(qū)分不同日期的備份。好在配置文件已經(jīng)加入了日期做區(qū)分,馬馬虎虎可以運行了。

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批量備份交換機配置的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Python實現(xiàn)選擇排序

    Python實現(xiàn)選擇排序

    選擇法也算是入門的一種排序算法,比起冒泡法,它的方法巧妙了一些,它的出發(fā)點在于“挑”,每次挑選數(shù)組的最值,與前置元素換位,然后繼續(xù)挑選剩余元素的最值并重復操作。個人認為選擇排序的意義不在于排序本身,而在于挑選和置換的方法,對于一些問題很有幫助。
    2017-06-06
  • 深入解析Python的Tornado框架中內(nèi)置的模板引擎

    深入解析Python的Tornado框架中內(nèi)置的模板引擎

    模板引擎是Web開發(fā)框架中負責前端展示的關鍵,這里我們就來以實例深入解析Python的Tornado框架中內(nèi)置的模板引擎,來學習如何編寫Tonardo的模板.
    2016-07-07
  • 利用python list完成最簡單的DB連接池方法

    利用python list完成最簡單的DB連接池方法

    這篇文章主要介紹了利用python list完成最簡單的DB連接池方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • Python基于內(nèi)置庫pytesseract實現(xiàn)圖片驗證碼識別功能

    Python基于內(nèi)置庫pytesseract實現(xiàn)圖片驗證碼識別功能

    這篇文章主要介紹了Python基于內(nèi)置庫pytesseract實現(xiàn)圖片驗證碼識別功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • 對numpy中數(shù)組元素的統(tǒng)一賦值實例

    對numpy中數(shù)組元素的統(tǒng)一賦值實例

    下面小編就為大家分享一篇對numpy中數(shù)組元素的統(tǒng)一賦值實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 數(shù)據(jù)清洗之如何用一行Python代碼去掉文本中的各種符號

    數(shù)據(jù)清洗之如何用一行Python代碼去掉文本中的各種符號

    我們在處理文本的時候往往需要對標點符號進行處理,下面這篇文章主要給大家介紹了關于數(shù)據(jù)清洗之如何用一行Python代碼去掉文本中的各種符號的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • 精心整理總結的Python自動化測試面試題

    精心整理總結的Python自動化測試面試題

    簡單來說,自動化測試框架包含了所有的測試工作所需的測試框架,下面這篇文章主要給大家介紹了關于Python自動化測試面試題的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • 日常整理python執(zhí)行系統(tǒng)命令的常見方法(全)

    日常整理python執(zhí)行系統(tǒng)命令的常見方法(全)

    本文是小編日常整理的些關于python執(zhí)行系統(tǒng)命令常見的方法,比較全面,特此通過腳本之家這個平臺把此篇文章分享給大家供大家參考
    2015-10-10
  • 如何將python的數(shù)據(jù)存儲到mysql數(shù)據(jù)庫中

    如何將python的數(shù)據(jù)存儲到mysql數(shù)據(jù)庫中

    在很多數(shù)據(jù)處理項目中,將數(shù)據(jù)存儲到數(shù)據(jù)庫中是非常常見的操作,下面這篇文章主要給大家介紹了關于如何將python的數(shù)據(jù)存儲到mysql數(shù)據(jù)庫中的相關資料,需要的朋友可以參考下
    2023-12-12
  • Python 面向對象編程的三大特性之繼承

    Python 面向對象編程的三大特性之繼承

    繼承也是面向對象編程三大特性之一,本篇文章我們就來學習Python中繼承的用處、使用場景及用與不用的區(qū)別,感興趣的朋友一起來閱讀下面文章吧
    2021-09-09

最新評論