Dlink config backup: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
(не показано 12 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | [[Категория:DlinkSwitch]] |
||
+ | [[Категория:Switch]] |
||
=Резервное копирование конфигов= |
=Резервное копирование конфигов= |
||
− | ==Загрузка конфигурационного файла на TFTP-сервер== |
+ | ==Загрузка конфигурационного файла на TFTP-сервер (Для 35хх серии)== |
1. На коммутаторе создать view и community |
1. На коммутаторе создать view и community |
||
Строка 10: | Строка 12: | ||
2. Задать IP-адрес TFTP-сервера: |
2. Задать IP-адрес TFTP-сервера: |
||
<PRE> |
<PRE> |
||
− | snmpset |
+ | 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 |
SNMPv2-SMI::enterprises.171.12.1.2.1.1.3.3 = IpAddress: 172.29.14.1 |
||
</PRE> |
</PRE> |
||
Строка 31: | Строка 33: | ||
SNMPv2-SMI::enterprises.171.12.1.2.1.1.5.3 = STRING: "DES3526.cfg" |
SNMPv2-SMI::enterprises.171.12.1.2.1.1.5.3 = STRING: "DES3526.cfg" |
||
</PRE> |
</PRE> |
||
⚫ | |||
⚫ | |||
⚫ | |||
+ | <PRE> |
||
⚫ | |||
+ | SNMPv2-SMI::enterprises.171.12.1.2.1.1.7.3 = INTEGER: 2 |
||
+ | </PRE> |
||
⚫ | |||
⚫ | |||
⚫ | |||
+ | <PRE> |
||
⚫ | |||
+ | </PRE> |
||
⚫ | |||
+ | Можно все комманды выполнить одним snmpset (подсказал [http://vorona.com.ua voron ]) |
||
⚫ | |||
+ | (это позволит сэкономить в скриптах когда нужно сохранить конфиги со многих коммутаторов) |
||
+ | <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 \ |
||
+ | 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 |
||
+ | </PRE> |
||
⚫ | |||
+ | ==Скрипт mass-backup== |
||
⚫ | |||
+ | У меня получился такой скриптик |
||
+ | <PRE> |
||
+ | #!/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 |
||
+ | </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> |
||
==источники== |
==источники== |
||
− | http://forum.dlink.ru/viewtopic.php?t=71359& |
+ | http://forum.dlink.ru/viewtopic.php?t=71359& |
Текущая версия на 12: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 | | +---------------+--------------+------+-----+---------+-------+