Dlink config backup: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
 
(не показано 7 промежуточных версий этого же участника)
Строка 1: Строка 1:
  +
[[Категория:DlinkSwitch]]
  +
[[Категория:Switch]]
 
=Резервное копирование конфигов=
 
=Резервное копирование конфигов=
==Загрузка конфигурационного файла на TFTP-сервер==
+
==Загрузка конфигурационного файла на TFTP-сервер (Для 35хх серии)==
   
 
1. На коммутаторе создать view и community
 
1. На коммутаторе создать view и community
Строка 47: Строка 49:
   
 
Можно все комманды выполнить одним snmpset (подсказал [http://vorona.com.ua voron ])
 
Можно все комманды выполнить одним snmpset (подсказал [http://vorona.com.ua voron ])
(это позволит сэконосить в скриптах когда нужно сохранить конфиги со многих коммутаторов)
+
(это позволит сэкономить в скриптах когда нужно сохранить конфиги со многих коммутаторов)
 
<PRE>
 
<PRE>
 
snmpset -v2c -c my_community 172.29.14.122 1.3.6.1.4.1.171.12.1.2.1.1.3.3 a 172.29.14.1 \
 
snmpset -v2c -c my_community 172.29.14.122 1.3.6.1.4.1.171.12.1.2.1.1.3.3 a 172.29.14.1 \
Строка 56: Строка 58:
   
 
</PRE>
 
</PRE>
  +
 
==Скрипт mass-backup==
 
==Скрипт mass-backup==
 
У меня получился такой скриптик
 
У меня получился такой скриптик
Строка 62: Строка 65:
   
 
MYSQL=`which mysql`
 
MYSQL=`which mysql`
MYSQL_CONNECT_INFO="-u my_database -pPASSWORD USERNAME --skip-column-names -e"
+
MYSQL_CONNECT_INFO="-u USERNAME -pPASSWORD my_database --skip-column-names -e"
   
 
SNMPSET=` which snmpset`
 
SNMPSET=` which snmpset`
Строка 91: Строка 94:
 
cd /tftproot
 
cd /tftproot
 
$TAR -cf dlink-cfg-$DATE.tar *_DLINK_CFG
 
$TAR -cf dlink-cfg-$DATE.tar *_DLINK_CFG
  +
</PRE>
  +
  +
Для 36хх - немного по другому
  +
http://www.dlink.ru/ru/faq/59/259.html
  +
<PRE> $SNMPSET -v2c -c $RW_COMMUNITY $IP 1.3.6.1.4.1.171.12.1.2.18.1.1.3.3 a $TFTP_SERVER_IP \
  +
1.3.6.1.4.1.171.12.1.2.18.1.1.5.3 s $FILE_NAME \
  +
1.3.6.1.4.1.171.12.1.2.18.1.1.8.3 i 2 \
  +
1.3.6.1.4.1.171.12.1.2.18.1.1.12.3 i 3 2>&1
  +
  +
</PRE>
  +
  +
  +
Описание и коммюнити храню в БД, т.к. БД свитчей применяется боле широко, чем хранение списка rw-коммюнити
  +
Для текущей задачи важны только ip, description и is_backup столбцы.
  +
<PRE>
  +
mysql> describe switch;
  +
+---------------+--------------+------+-----+---------+-------+
  +
| Field | Type | Null | Key | Default | Extra |
  +
+---------------+--------------+------+-----+---------+-------+
  +
| ID | int(255) | NO | PRI | 0 | |
  +
| IP | varchar(255) | YES | MUL | NULL | |
  +
| TYPE | int(255) | YES | | NULL | |
  +
| EXCLUDE_PORTS | varchar(255) | YES | | NULL | |
  +
| street_id | int(10) | NO | MUL | 1 | |
  +
| house_id | int(10) | NO | | 1 | |
  +
| porch_id | int(10) | NO | | 1 | |
  +
| DESCRIPTION | varchar(255) | YES | | NULL | |
  +
| UP_PORT | varchar(255) | YES | | NULL | |
  +
| UP_SWITCH | int(255) | NO | | 0 | |
  +
| ipbind | int(255) | YES | | NULL | |
  +
| rw_community | varchar(32) | YES | | NULL | |
  +
| is_backup | int(11) | YES | | NULL | |
  +
+---------------+--------------+------+-----+---------+-------+
 
</PRE>
 
</PRE>
   

Текущая версия на 13:43, 11 февраля 2021

Резервное копирование конфигов

Загрузка конфигурационного файла на TFTP-сервер (Для 35хх серии)

1. На коммутаторе создать view и community

create snmp view test 1 view_type included
create snmp community my_community view test read_write

2. Задать IP-адрес TFTP-сервера:

snmpset -v2c -c my_community  172.29.14.122 1.3.6.1.4.1.171.12.1.2.1.1.3.3 a 172.29.14.1
SNMPv2-SMI::enterprises.171.12.1.2.1.1.3.3 = IpAddress: 172.29.14.1

3 - (последняя цифра OIDа) - Конфигурационный файл (config file) 172.29.14.1 - IP-адрес TFTP-сервера


3. Выбрать тип передачи файла:

snmpset -v2c -c my_comunity  172.29.14.122 1.3.6.1.4.1.171.12.1.2.1.1.4.3 i 2
SNMPv2-SMI::enterprises.171.12.1.2.1.1.4.3 = INTEGER: 2

2 - Загрузка по сети (1 и 3 по-видимому смысла не имеют, 1 - other, 3 - out-of-band load )


4. Задать имя конфигурационного файла:

snmpset -v2c -c my_community  172.29.14.122 1.3.6.1.4.1.171.12.1.2.1.1.5.3 s DES3526.cfg
SNMPv2-SMI::enterprises.171.12.1.2.1.1.5.3 = STRING: "DES3526.cfg"

DES3526.cfg - Имя файла

5. Выбрать либо загрузку файла на коммутатор, либо на TFTP-сервер (download или upload):

snmpset -v2c -c my_community  172.29.14.122 1.3.6.1.4.1.171.12.1.2.1.1.7.3 i 2
SNMPv2-SMI::enterprises.171.12.1.2.1.1.7.3 = INTEGER: 2

2 - Upload

6. Начать передачу файла:

snmpset -v2c -c my_community  172.29.14.122 1.3.6.1.4.1.171.12.1.2.1.1.8.3 i 3

3 -> Начать операцию

Можно все комманды выполнить одним snmpset (подсказал voron ) (это позволит сэкономить в скриптах когда нужно сохранить конфиги со многих коммутаторов)

snmpset -v2c -c my_community  172.29.14.122 1.3.6.1.4.1.171.12.1.2.1.1.3.3 a 172.29.14.1 \
        1.3.6.1.4.1.171.12.1.2.1.1.4.3 i 2 \
        1.3.6.1.4.1.171.12.1.2.1.1.5.3 s DES3526.cfg \
        1.3.6.1.4.1.171.12.1.2.1.1.7.3 i 2 \
        1.3.6.1.4.1.171.12.1.2.1.1.8.3 i 3

Скрипт mass-backup

У меня получился такой скриптик

#!/bin/bash

MYSQL=`which mysql`
MYSQL_CONNECT_INFO="-u USERNAME -pPASSWORD my_database  --skip-column-names -e"

SNMPSET=` which snmpset`
TFTP_SERVER_IP='172.16.0.1'

DATE=`date +%d%m%Y`
TAR=`which tar`

$MYSQL $MYSQL_CONNECT_INFO "SELECT IP,DESCRIPTION,rw_community from switch where is_backup=1" | while read LINE
do
    IP=`echo $LINE | awk '{print $1}'`
    DESCRIPTION=`echo $LINE | awk '{print $2}'`
    RW_COMMUNITY=`echo $LINE | awk '{print $3}'`
    FILE_NAME=`echo $DESCRIPTION | sed -e 's/\./_/' | sed -e 's/ /_/'`
    touch /tftproot/$FILE_NAME'_'${DATE}_DLINK_CFG
    chmod 777 /tftproot/$FILE_NAME'_'${DATE}_DLINK_CFG
    $SNMPSET -v2c -c $RW_COMMUNITY $IP 1.3.6.1.4.1.171.12.1.2.1.1.3.3 a $TFTP_SERVER_IP \
        1.3.6.1.4.1.171.12.1.2.1.1.4.3 i 2 \
        1.3.6.1.4.1.171.12.1.2.1.1.5.3 s $FILE_NAME'_'${DATE}_DLINK_CFG \
        1.3.6.1.4.1.171.12.1.2.1.1.7.3 i 2 \
        1.3.6.1.4.1.171.12.1.2.1.1.8.3 i 3
done

# Выждать завершение всех  процессов
sleep 5


cd /tftproot
$TAR -cf dlink-cfg-$DATE.tar *_DLINK_CFG

Для 36хх - немного по другому http://www.dlink.ru/ru/faq/59/259.html

    $SNMPSET -v2c -c $RW_COMMUNITY $IP  1.3.6.1.4.1.171.12.1.2.18.1.1.3.3 a $TFTP_SERVER_IP \
                                        1.3.6.1.4.1.171.12.1.2.18.1.1.5.3 s $FILE_NAME \
                                        1.3.6.1.4.1.171.12.1.2.18.1.1.8.3 i 2 \
                                        1.3.6.1.4.1.171.12.1.2.18.1.1.12.3  i 3  2>&1 


Описание и коммюнити храню в БД, т.к. БД свитчей применяется боле широко, чем хранение списка rw-коммюнити Для текущей задачи важны только ip, description и is_backup столбцы.

mysql> describe switch;
+---------------+--------------+------+-----+---------+-------+
| Field         | Type         | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+-------+
| ID            | int(255)     | NO   | PRI | 0       |       |
| IP            | varchar(255) | YES  | MUL | NULL    |       |
| TYPE          | int(255)     | YES  |     | NULL    |       |
| EXCLUDE_PORTS | varchar(255) | YES  |     | NULL    |       |
| street_id     | int(10)      | NO   | MUL | 1       |       |
| house_id      | int(10)      | NO   |     | 1       |       |
| porch_id      | int(10)      | NO   |     | 1       |       |
| DESCRIPTION   | varchar(255) | YES  |     | NULL    |       |
| UP_PORT       | varchar(255) | YES  |     | NULL    |       |
| UP_SWITCH     | int(255)     | NO   |     | 0       |       |
| ipbind        | int(255)     | YES  |     | NULL    |       |
| rw_community  | varchar(32)  | YES  |     | NULL    |       |
| is_backup     | int(11)      | YES  |     | NULL    |       |
+---------------+--------------+------+-----+---------+-------+

источники

http://forum.dlink.ru/viewtopic.php?t=71359&