|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
||||||
Оптимизация скрипта, определяющего количество портов коммутатора01.03.2013, 05:42. Показов 2718. Ответов 13
Метки нет (Все метки)
Добрый день.
На Shell скриптописанием начал заниматься совсем недавно. Прошу помощи в оптимизации кода и помощи в методе решения. Сделал скипт, который при работе проверяет модель коммутатора, ревизию и подсчитывает все отключеные порты на нем. Входные данные: ip коммутатора. Выходные данные: колличество отключеных портов. Реализовано с применением временных файлов, хотелось бы от этого уйти избавиться. Пытался реализовать через пайпы, но были проблемы со сравнением выходных данных дочернего процесса, а так же проблемы со сравнением строк. Через баш не реализовал, т.к. либо что-то не пойму, либо пользуюсь как-то не так терминалом ![]()
0
|
||||||
| 01.03.2013, 05:42 | |
|
Ответы с готовыми решениями:
13
Cisco настройка портов коммутатора Затруднения с работоц портов коммутатора Оптимизация скрипта |
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||||||||
| 01.03.2013, 06:09 | |||||||||
|
Добавлено через 5 минут
Добавлено через 3 минуты Добавлено через 7 минут с 1 до 32 строки опиши словами, что делаешь
0
|
|||||||||
|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
||
| 01.03.2013, 06:25 [ТС] | ||
|
Далее в файл выгружаю ревизию. Потом следует case по моделям коммутатора, который будет проверять ревизию и уже под каждый коммутатор и ревизию поставлять свой var. В var буду подставлять строку, которую буду использовать в snmp запросе, т.к. для каждой модели и ревизии свой snmp запрос. К примеру при запросе .1.3.6.1.4.1.171.11.113.1.3.2.2.1.1.4.24 .100 выведет либо 2, либо 3, что значит, что на медном порту коммутатора либо есть активное соединение, либо его нет.
0
|
||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||
| 01.03.2013, 06:45 | ||||
|
Добавлено через 4 минуты 1) что такое вторая строка ? 2) что такое count ? 3) что такое dis ? 4) что в результате находится в файле file.~tmp ? 5) что такое par ? Добавлено через 1 минуту
0
|
||||
|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
|||
| 01.03.2013, 07:00 [ТС] | |||
|
2) count от 1 до 28 увеличивается. Скрипт написан пока под 1 модель коммутатора, у которого 28 портов, count будет меняться в зависимости от модели коммутатора в операторе выбора. 3) dis - счетчик, подсчитывает число отключеных портов. 4) при первой записи хранится название модели коммутатора. после второй записи храним только ревизию коммутатора. 5) в par указано некоторое значение, которое будет меняться при разных моделях коммутатора. Например 28 коммутатор - значение 28. 26 поровый - значение 26. и т.п.
"A1"
0
|
|||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||||||||||||
| 01.03.2013, 07:15 | ||||||||||||||||
|
пример модели приведи ещё Добавлено через 5 минут
Кликните здесь для просмотра всего текста
1
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
||||||||||||||||
| 01.03.2013, 07:36 [ТС] | ||||||||||||||||
"D-Link DES-3200-28 Fast Ethernet Switch"
0
|
||||||||||||||||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||||
| 01.03.2013, 08:48 | ||||||||
1) par - это модель ? 2) что такое var ? 3) что означают эти ошибки, в чём отличие Error от Error2 ? 4) зачем при exit что-то присваивается var ? 5) что происходит при выборе пункта 28 ?
1
|
||||||||
|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
||
| 01.03.2013, 10:05 [ТС] | ||
|
2) var - будет содержать часть oid под конкретную ммодель коммутатора. 3) заместо этого будет меняться значение var. Использовал для проверки работы скрипта с разными коммутаторами и ревизиями. если не известная модель коммутатора или же версия ревизии, то выдает ошибку. 4) когда добавлю ревизию для коммутатора сообщение о ошибке и выход уберу, а вар останется, только присвою другое значение. 5) проверяем ревизию и меняем значения вар, которые зависят от ревизии. так же будут пункты, к примеру 26, 18,10.
0
|
||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
| 01.03.2013, 10:47 | ||||||
|
а в нём какие-то проверки, которые вообще не нужны Добавлено через 7 минут твоя задача сейчас - это сформулировать алгоритм, который ты хочешь реализовать, а не вары какие-то перечислять, которые ничего не значат например, из того, что уже рассмотрели: 1. узнать ip 2. получить двузначный номер модели для ip 3. получить двузначный номер ревизии для ip 4. по номеру модели для ip получить однозначный номер oid
0
|
||||||
|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
|||
| 01.03.2013, 11:14 [ТС] | |||
|
скрипт рабочий для 1 модели коммутатора. При остальных моделях он выдает ошибку и завершает работу. Это предусмотрено как раз в скелете проверки модели и ревизии. В общем я переделаю через функции. И покажу что получится. часть oid не обязательно будет 1 символ. Когда соберу все oid, решу сколько символов буду использовать оттуда.
![]()
0
|
|||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||
| 01.03.2013, 11:19 | |||
|
а потом, когда завершённая часть сформулирована, реализуй её в виде кода завершённая часть - это, например, часть до цикла, который у тебя там перебирает что-то, сам цикл - это тоже завершённая часть, после него - следующая завершённая часть Добавлено через 56 секунд
0
|
|||
|
0 / 0 / 0
Регистрация: 01.03.2013
Сообщений: 14
|
||||||
| 04.03.2013, 12:12 [ТС] | ||||||
![]() Oid'ы пока не знаю увы, от того какие они будут, зависить будут и key, и adm. op_st пока исключен из программы, т.к. без oid тоже пока не знаю как будет он зависить от коммутатора. Опять же для 3200-28 ревизии А1 программа работает(знаю только его oid) Так же все выключеные порты можно отслеживать и без op_st
0
|
||||||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||||||
| 04.03.2013, 20:54 | ||||||||||
где комментарии к функциям, которые там были ? ты думаешь, что ты будешь помнить через пару дней, как работает функция и как её запускать ? или ты собираешься каждый день по пятьсот функций перечитывать ? да у тебя времени не хватит функция пишется один раз, потом ты пользуешься только её прототипом и комментарием к ней, она никогда не перечитывается почему у тебя в этой функции используется $1 в 110 строке ? ты его для чего присваивал $ip ? если строка длинная, переноси её с помощью \ дальше всё, начиная со 112 строки, тоже должно быть в функции (естественно, нужно определить шаги алгоритма, каждый шаг становится вызовом функции)
0
|
||||||||||
| 04.03.2013, 20:54 | |
|
Помогаю со студенческими работами здесь
14
Оптимизация скрипта оптимизация скрипта
Оптимизация скрипта Оптимизация работы скрипта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|