)
QTECH проверка firmware
Когда сеть оператора связи со временем становится всё больше и больше, то всё труднее становится за ней уследить. В таком случае сотрудники отдела информационных технологий компании или интегратор в помощь пишут срипты по управлению и мониторингу. Мне довелось в своё время писать большое количество скриптов для оборудования торговой марки D-Link, и теперь я их понемногу переписываю под оборудование QTECH (QSW-3900 и QSW-2900). Так что со временем не всеми, но частью поделюсь.
Начнём со скрипта выводящего информацию по прошивке и bootroom коммутаторов:
#!/usr/local/bin/bash -# Функция логированияfunction logging() { echo "$1 $2" >> $WORK_DIR/log/swversion.log echo -e $1 '\t' $2}# Проверка ввода переменныхif [ ! $# == 1 ]; then echo "Информация: Проверка ввода данных." echo "Использование: swversion <Список IP Коммутаторов>" exit 1fiWORK_DIR="/usr/local/acl"COMMUNITY="SNMP_RO"SWITCH_IP_LIST="$1"# Проверка файла со списком IP адресов на существованиеif [ ! -f $SWITCH_IP_LIST ]; then echo "Файл не найден!" exit 1fi# Удаление старого файла со статистикойrm -rf $WORK_DIR/stat/swversion.log# Вывод построчно IP адресов коммутаторовcat $WORK_DIR/$SWITCH_IP_LIST | sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n | uniq |while read SWITCH_IPdo # Проверяем доступность коммутатора ping -c 1 $SWITCH_IP > /dev/null 2>&1 if [[ ! $? == 0 ]]; then logging $SWITCH_IP "NO_PING" else SWITCH=`snmpget -v2c -c $COMMUNITY $SWITCH_IP 1.3.6.1.2.1.1.5.0` if [[ $SWITCH == *QTECH* ]]; then SWITCH_SOFT_VERSION=`snmpget -Ov -Oq -v2c -c $COMMUNITY $SWITCH_IP .1.3.6.1.4.1.27514.1.2.1.1.2.2.0 | sed 's/"//g'` SWITCH_HARD_VERSION=`snmpget -Ov -Oq -v2c -c $COMMUNITY $SWITCH_IP .1.3.6.1.4.1.27514.1.2.1.1.2.8.0 | sed 's/"//g'` SWITCH_BOOT_VERSION=`snmpget -Ov -Oq -v2c -c $COMMUNITY $SWITCH_IP .1.3.6.1.4.1.27514.1.2.1.1.2.9.0 | sed 's/"//g'` SWITCH_MAC=`snmpwalk -Ov -Oq -v2c -c $COMMUNITY $SWITCH_IP .1.3.6.1.4.1.27514.1.2.1.1.1.1 | sed 's/"//g'` echo -e $SWITCH_IP '\t' $SWITCH_SOFT_VERSION '\t' $SWITCH_HARD_VERSION '\t' $SWITCH_BOOT_VERSION '\t' $SWITCH_MAC >> $WORK_DIR/stat/swversion.log echo -e $SWITCH_IP '\t' $SWITCH_SOFT_VERSION '\t' $SWITCH_HARD_VERSION '\t' $SWITCH_BOOT_VERSION '\t' $SWITCH_MAC else logging $SWITCH_IP "SNMP_OFF" fi fidoneexit 0 |
Файл с IP адресами коммутаторов имеет вид (3900.csv):
xxx.yyy.zzz.2xxx.yyy.zzz.6xxx.yyy.zzz.10xxx.yyy.zzz.14xxx.yyy.zzz.18xxx.yyy.zzz.22xxx.yyy.zzz.26xxx.yyy.zzz.30xxx.yyy.zzz.38xxx.yyy.zzz.34xxx.yyy.zzz.42xxx.yyy.zzz.46xxx.yyy.zzz.50xxx.yyy.zzz.54xxx.yyy.zzz.58xxx.yyy.zzz.62 |
Выполнение скрипта сводится к указанию файла со списком IP адресов коммутаторов:
[root@EXAMPLE /usr/local/acl]# ./swversion 3900.csvxxx.yyy.zzz.2 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 4Cxxx.yyy.zzz.6 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 56xxx.yyy.zzz.10 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 50xxx.yyy.zzz.14 QTECH QSW-3900 V100R001B01D004P002SP2 V1.0 V1.38 00 1F CE 10 39 4Fxxx.yyy.zzz.18 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 4Axxx.yyy.zzz.22 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 58xxx.yyy.zzz.26 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 59xxx.yyy.zzz.30 NO_PINGxxx.yyy.zzz.34 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 5Bxxx.yyy.zzz.38 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 4Exxx.yyy.zzz.42 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 52xxx.yyy.zzz.46 NO_PINGxxx.yyy.zzz.50 NO_PINGxxx.yyy.zzz.54 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 55xxx.yyy.zzz.58 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 57xxx.yyy.zzz.62 QTECH QSW-3900 V100R001B01D004P001SP4 V1.0 V1.37 00 1F CE 10 39 47 |
По полученными данным видно, что большая часть оборудования имеет старую версию прошивки и bootroom. Теперь можно приступить к обновлению программного обеспечения коммутаторов, что тоже делается через скрипт (о нём я расскажу немного позже).

