引言:網絡規模越來越大,設備越來越多。運維人員管理著成百上千臺的設備,一方面要保障設備穩定運行,另一方面要快速處理故障,這就需要運維人員平時不斷更新備份設備的配置數據。本文重點闡述,如何開發簡單的小程序輕松實現自動備份全網數據設備的配置。
目前,我們現網的數據設備Cisco路由交換、CMTS接入設備、EPON接入設備都有TFTP命令,將配置保存到TFTP服務器。比如:

都有相關的TFTP命令,每種類型的設備命令格式有略微的差別。
本項目的原理就是,將所有數據設備存放在數據庫中,并給每臺數據設備定義好設備型號,php程序輪詢數據庫,每條記錄調用shell腳本,自動執行TELNET 命令,登陸到每臺數據設備,執行下tftp導配置命令,并將配置按照設備類型保存到指定文件夾。
主要有以下幾個重要項目:
device_table表
php程序輪詢這個表。
ip:每臺數據設備的IP地址,唯一。用于telnet設備用。
hostname:主機名,通過SNMP獲取,用作自動備份配置時給配置起文件名。
description:主機描述,通過SNMP獲取。
device_type:設備類型,事先定義好。(比如:route、switch、cmts、eopn)
model表
model:設備型號,事先定義好。有二個用途:用于自動備份時選擇shell腳本,因為,每種型號的設備tftp 命令有區別。為每個型號做個shell腳本,比較靈活,有新型號設備,添加一個shell腳本就OK。用于給數據設備分類,所有TFTP過來的配置,都按照設備類型進行保存。
model:數據設備錄入數據庫時,提供選擇,必選。

在這個文件夾中,存放所有設備型號的shell腳本,文件名跟model表中的一樣。


A、數據設備錄入功能:單個設備錄入,批量設備錄入。
B、數據設備配置批量備份。
數據設備錄入功能:將數據設備錄進數據庫
單個設備錄入功能
只需要填入IP地址,選擇設備型號即可,添加設備時做以下幾個操作。
1)檢查數據庫中IP是否存在,存在不添加,不存在則添加進數據庫。
2)通過SNMP獲取設備的主機名(hostname)、主機描述(description)等信息。
3)寫進數據庫的字段有ip、hostname、description、version、device_type、model。
4)部分php代碼如下:


批量設備錄入功能
批量錄入有個注意點:上傳文件里的ip,只能是同一型號的設備,并且選擇好設備型號。
批量添加的php代碼


數據設備配置批量備份

/*歷遍數據庫device_table表,取出三個有用的 字 段 ip:用 于telnet;hostname:配置文件名;modem:選擇shell腳本的變量。*/




首先默認策略

然后添加允許的 網段、端口。我的防火墻策略寫得不是很細,只是開放相關網段。
設備網段允許服務器主動請求出去,不允許設備網段主動請求服務器。


2016年02月01日已經在現網中實際使用,176臺數據設備,配置在20分鐘內全部保存完畢。

由于開發了此自動備份程序,在很大程度上為網絡設備的穩定運行提供了強有力的保障。大大減少了網絡中斷時間以及網絡故障的影響面,網絡運營商的品牌形象得到了進一步的提高。