Archive for script

Mikrotik проверка и переключение маршрута

// Январь 27th, 2017 // No Comments » // mikrotik, Network, routing, script

Ситуация: есть L2 транспорт и его резервный канал, на канале L2 софт использует адрес on-connected (см. рис.) 10.1.1.1, который в случаи обрыва L2 канала становится недоступным и нужно переключить маршрут на резервный канал.

Попытка реализовать стандартными средствами: создать два маршрута на адрес 10.1.1.1, один через основной канал с меньшей метрикой (больший приоритет) и второй с большей метрикой через резервный — не увенчалась успехом, т.к. первый маршрут не становился неактивны при падении линка даже при условии микротиковской фичи проверки наличия ARP. Было так:

/ip route
 add distance=10 dst-address=10.1.1.1/32 gateway=10.4.12.1
 add distance=1 dst-address=10.1.1.1/32 gateway=ether1 check-gateway=arp

но не работало =(

Решение было написать скрипт, который проверяет наличие ARP записи и переключает маршрут
(далее…)

Свой SNMP OID на примере количества сессий Poptop PPTP

// Ноябрь 16th, 2013 // No Comments » // network monitoring, script, sh/bash, snmp

Подразумевается использование NET-SNMP ver. > 5.4.3 и учет всех PPP сессий NAS сервера.

Интересует привязать скрипт к конкретному OID, в данном случаи будет .1.3.6.1.4.1.9.9.150.1.1.1.0 он же «Number of entries currently in casnActiveTable», в манах по циско собственно и значится как количество активных AAA сессий, т.е. всех-всех авторизованных, но для совместимости в большинстве систем мониторинга используется именно этот OID.

Скрипт считает количество интерфейсов, в названии которых есть «ppp» и выводит в соответсвии с требованием snmp, первая строка адрес OID, вторая тип данных, третья собственно само значение которое будет помещено в OID:

#!/bin/sh
echo ".1.3.6.1.4.1.9.9.150.1.1.1.0"
echo "integer"
ifconfig | grep "ppp" | wc -l

В файл /etc/snmp/snmpd.conf добавить строку:

pass .1.3.6.1.4.1.9.9.150.1.1.1.0 /bin/sh /path/to/scripts/ppp_interface_count.sh

перезапустить snmpd и проверить:

$ snmpget -v2c -c public localhost .1.3.6.1.4.1.9.9.150.1.1.1.0
iso.3.6.1.4.1.9.9.150.1.1.1.0 = INTEGER: 2

Документация:
http://www.net-snmp.org/docs/man/snmpd.conf.html#lbAZ

Сортировка IP адресов в консоле

// Сентябрь 12th, 2013 // No Comments » // console, script, sh/bash

Простой скрипт для сортировки IP адресов в консоли.

Использовать так:

./sortip.sh ./ips

где файл ips должен содержать список IP адресов, каждый с новой строки, например:

192.168.1.20
192.168.1.120
192.168.1.11
192.168.1.21
192.168.1.2
192.168.1.12

Скачать скрипт.

#!/bin/sh

if [ "$#" = "1" ]; then
 sort -t. +0n -1n +1n -2n +2n -3n +3n $1
fi

Mikrotik отладка скрипта (debug script)

// Январь 12th, 2013 // 1 Comment » // mikrotik, script

Ситуация, написали скрипт, поместили его в /system script, а он не запускается, такое часто случается, когда скприт был написан для другой версии, т.е. отличается синтаксисом.
Быстро проверить можно командой:

/system script print from=<script_name>

которая подсветит неверный синтаксис.