У меня есть файл конфигурации устройства, и я хотел бы проверить, соответствует ли его версия моему списку или нет.
Во-первых, мне нужно проверить их модель.
Второй шаг: для каждой модели одобрена только конкретная версия.
Пример:
Model 1841, Version 15.1(4)M7, 15.1(4)M10, or 15.2(1)T4 are approved.
Model 2800, Version 15.1(2)GC2, 15.1(4)M10, 15.1(4)M12a are approved.
Model C2960, Version 15.0(2)SE9 and 15.0(2)SE11 are approved.
Это образец файлов конфигурации.
[user@linux]$ more Device*
::::::::::::::
DeviceA
::::::::::::::
DeviceA#sh ver
Cisco IOS Software, 1841 Software (C1841-ADVSECURITYK9-M), Version 15.1(4)M10, RELEASE SOFTWARE (fc2)
::::::::::::::
DeviceB
::::::::::::::
DeviceB#sh ver
Cisco IOS Software, 2800 Software (C2800NM-ADVSECURITYK9-M), Version 15.1(4)M10, RELEASE SOFTWARE (fc2)
::::::::::::::
DeviceC
::::::::::::::
DeviceC#sh ver
Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(55)SE8, RELEASE SOFTWARE (fc2)
[user@linux]$
Это мой скрипт для проверки модели из каждого файла конфигурации
#!/bin/bash
if grep --color=auto 'Cisco IOS Software' * > /dev/null
then
echo found
else
echo not found
fi
Пример вывода
[user@linux]$ ./script.sh
found
[user@linux]$
Мне удалось найти модель, которая является первым шагом. Но все еще не могу понять, как проверить, имеет ли данная модель утвержденную версию или нет.
Желаемый выход
Если он имеет утвержденную версию, то результат должен быть в порядке.
Если нет, устройство использует неутвержденную версию.
Пример
DeviceA - Model 1841 - Version 15.1(4)M10 = OK
DeviceB - Model 2800 - Version 15.1(4)M10 = OK
DeviceC - Model C2960, Version 12.2(55)SE8 = NOT OK
Надеюсь, этот вопрос достаточно ясен, если нет, пожалуйста, дайте мне знать.