Давно я писал скрипт, чтобы проверить, нормально ли работает стеки Cisco и подключены ли все кабели стека. Но проблема в том, что он очень долго выполнялся, потому что содержал кучу if-условий. По-настоящему хорошего способа это решить нет, ведь приходится проверять каждый кабель стека по отдельности. Поэтому я решил: время от времени буду переключать эту функцию на предыдущую версию, чтобы проверить наличие проблем с кабелями стека, а в остальное время использовать урезанную версию. Чтобы сократить количество условий, буду тестировать порты стека только если свитч сообщает, что он сломан… Но если кабель стека не подключен, это не определяется как ошибка стека. То есть, по сути, он просто определяет неисправный свитч в стеке.
Функция: swinstk
if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=9, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=36,1,stk9prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=8, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=32,1,stk8prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=7, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=28,1,stk7prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=6, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=24,1,stk6prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=5, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=20,1,stk5prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=4, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=16,1,stk4prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=3, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=12,1,stk3prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=2, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=8 ,1,stk2prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=1, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=4 ,1,“Switch needs attention”), “Problem reading Any stack” )))))))))
Функция: swinstk
if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=9, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=36,1,stk9prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=8, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=32,1,stk8prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=7, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=28,1,stk7prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=6, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=24,1,stk6prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=5, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=20,1,stk5prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=4, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=16,1,stk4prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=3, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=12,1,stk3prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=2, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=8 ,1,stk2prts()), if(array_size(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=1, if(sum(oid_column(“1.3.6.1.4.1.9.9.500.1.2.1.1.6”,10,5))=4 ,1,“Switch needs attention”), “Problem reading Any stack” )))))))))
