Четверг
21.09.2017, 20:46
Приветствую Вас Гость | RSS
Главная Каталог статей Регистрация Вход
Меню сайта

Категории раздела
Разное [15]
Документация [18]
Авторские статьи [45]

Поиск

Свежие статьи
Динамическое деление скоро...
port knocking на mikrotik
Установка NGINX без прав R...
Как настроить время (NTP S...
Настраеваем CROND
Биллинг MikBill на UBUNTU
Даунгрейд PHP до версии 5....
Устанавливаем в Ubuntu 10....
Как настроить MySQL
Как настроить ZendOptimize...

Форма входа
Логин:
Пароль:

Главная » Статьи » Документация

Серверные сценарии ч.2
Серверные сценарии ч.2
Управление задачами
Уровень меню: /system script job
Описание
Это средство используется для управления активными процессами и расписанием.
Свойство описания
name(только-чтение; имя) - имя ссылки на сценарий после его вызова
owner(текст) - имя пользователя создавшего сценарий
source(только чтение; текст) - непосредственно код сценария
Пример
[admin@MikroTik] system script> job print
# SCRIPT OWNER STARTED
0 DelayeD admin dec/27/2003 11:17:33
[admin@MikroTik] system script>
Вы можете отменить выполнение сценария путем удаления его из списка задач
Пример
[admin@MikroTik] system script> job remove 0
[admin@MikroTik] system script> job print
[admin@MikroTik] system script>
Редактор сценариев
Команда: /system script edit
Описание
В консоль RouterOS встроен простой полно экранный редактор сценариев с поддержкой
многострочного написания сценария.
Клавиатурные сокращения
Delete - удаляет символы в позиции курсора
Ctrl+h, bakspase - удаляет символы перед позицией курсора
Tab - линия отступов
Ctrl+b,LeftArrow – передвижение курсора в лево
Ctrl+f, RightArrow - передвижение курсора в право
Ctrl+n, DownArrow - передвижение курсора вниз
Ctrl+p, UpArrow - передвижение курсора вверх
Ctrl+a, Home - передвижение курсора в начало строки
Ctrl+e, End - передвижение курсора в конец строки
Ctrl+y - вставить содержимое буфера обмена в позиции курсора
Ctrl+k - удаление символов от позиции курсора до конца файла
Ctrl+u - отмена предидущег8о действия
Ctrl+o - выйти и сохранить
Ctrl+x - выйти без сохранения
Описание команд
edit(имя) - открывает сценарий по имени name в полно-экранном редакторе
Примечание
Все символы удаленные с помощью backspace, delete или Ctrl+k ключей
буферизируются. Нажатие любого другого ключа заканчивает добавление в данный
буфер(Ctrl+y вынимает его содержимое), и следующая операция удаления заменит
содержимое буфера. Операция отмены не изменяет содержимое буфера.
Редактор сценариев работает только на VT102 совместимых териналов(терминалы
"vt102", "linux", "xterm", "rxvt" на данный момент распознаются на данный момент как
VT102). Клавиатурные сокращения backspace и delete не будут работать в других
терминалах.
Пример
Следующий пример демонстрирует окно редактора сценариев с открытым сценарием.
Данный сценарий используется для записи в журнал сообщения "hello" и трех сообщений
"kuku".
Системный планировщик
Спецификация
Требуемые пакеты: system
Уровень лицензии: Level1
Уровень подменю: system sheduler
Стандарты и технологии: нет
Аппаратное обеспечение: не существенно
Описание
Системный планировщик обеспечивает возможность исполнения сценария в назначеное
время.
Свойство описания
interval(время; по умолчанию 0)- интервал между двумя исполнениями сцен ария, если
время interval установлено в ноль, то сценарий будет исполнен только в назначенное
время, в противном случае выполнение будет повторятся через указанный интервал.
name(имя) - имя задачи
run-count(только чтение; целое) - используется в сценарии мониторинга, этот счетчик
инкрементируется каждый раз когда сценарий исполняется.
start-date(дата) - дата первого запуска сценария
start-time(время) - время первого запуска сценария
Примечание
Перезагрузка маршрутизатора сбросит run-count счетчик.
Если более чем один сценарий должен быть запущен в одно и тоже время(одновременно),
они исполнятся в порядке их появления в конфигурации планировщика. Это может быть
важно если один сценарий испол ьзуется для отключения другого. Порядок исполнения
может быть изменен с помощью команды move.
Если необходимо более сложное выполнение, то это может быть сделано набором
сценариев запускающих или отключающих друг друга.
Пример
[admin@MikroTik] system script> add name=log-test source=:log message=test
[admin@MikroTik] system script> print
0 name="log-test" source=":log messgae=test" owner=admin run -count=0
[admin@MikroTik] system script> .. scheduler
[admin@MikroTik] system scheduler> add name=run -1h interval=1h
on-event=log-test
[admin@MikroTik] system scheduler> print
Flags: X - disabled
# NAME ON-EVENT START-DATE START-TIME INTERVAL RUN-COUNT
0 run-1h log-test mar/30/2004 06:11:35 1h 0
[admin@MikroTik] system scheduler>
В другом примере будут добавлены два сценария которые будут изменять установки
пропускной способности правил очереди "Cust0". Каждый день в 9 часов утра очередь
будет установлена в 64 Kb/s и в 5 часов вечера очередь будет установлена в 128 Kb/s.
Правила очереди, сценарии и расписание задач показаны ниже.
[admin@MikroTik] queue simple> add name=Cust0 interface=ether1
... dst-address=192.168.0.0/24 limit -at=64000
[admin@MikroTik] queue simple> print
Flags: X - disabled, I - invalid
0 name="Cust0" target-address=0.0.0.0/0 dst-address=192.168.0.0/24
interface=ether1 limit-at=64000 queue=default priority=8 bounded=yes
[admin@MikroTik] queue simple> /system script
[admin@MikroTik] system script> add name=start_limit source={/queue simple set
... Cust0 limit-at=64000}
[admin@MikroTik] system script> add name=stop_limit source={/queue simple set
... Cust0 limit-at=128000}
[admin@MikroTik] system script> print
0 name="start_limit" source="/queue simple set Cust0 limit -at=64000"
owner=admin run-count=0
1 name="stop_limit" source="/queue simple set Cust0 limit -at=128000"
owner=admin run-count=0
[admin@MikroTik] system script> .. scheduler
[admin@MikroTik] system scheduler> add interval=24h name="set -64k"
... start-time=9:00:00 on-event=start_limit
[admin@MikroTik] system scheduler> add interval=24h name="set -128k"
... start-time=17:00:00 on-event=stop_limit
[admin@MikroTik] system scheduler> print
Flags: X - disabled
# NAME ON-EVENT START-DATE START-TIME INTERVAL RUN-COUNT
0 set-64k start... oct/30/2008 09:00:00 1d 0
1 set-128k stop_... oct/30/2008 17:00:00 1d 0
[admin@MikroTik] system scheduler>
Следующий пример расписаний сценария каждую неделю посылает резервную копию
конфигурации маршрутизатора на e-mail.
[admin@MikroTik] system script> add name=e -backup source={/system backup
{... save name=email; /tool e -mail send to="root@host.com" subject=([/system
{... identity get name] . " Backup") file=email.backup}
[admin@MikroTik] system script> print
0 name="e-backup" source="/system backup save name=ema... owner=admin<br /><br /> run-
count=0<br /><br /> <br /><br />[admin@MikroTik] system script> .. scheduler<br /><br
/>[admin@MikroTik] system scheduler> add interval=7d name="email -backup"
... on-event=e-backup
[admin@MikroTik] system scheduler> print
Flags: X - disabled
# NAME ON-EVENT START-DATE START-TIME INTERVAL RUN-COUNT
0 email-... e-backup oct/30/2008 15:19:28 7d 1
[admin@MikroTik] system scheduler>
Не забудьте настроить e -mail, то есть в установках e -mail прописать SMTP сервер и
FROM: адрес отправителя.
Для примера
[admin@MikroTik] tool e -mail> set server=159.148.147.198 from=SysAdmin@host.com
[admin@MikroTik] tool e -mail> print
server: 159.148.147.198
from: SysAdmin@host.com
[admin@MikroTik] tool e -mail>
Пример ниже помещает 'x' в системный журнал каждый час с полночи до полудня.
[admin@MikroTik] system script> add name=enable -x source={/system scheduler
{... enable x}
[admin@MikroTik] system script> add name=disable -x source={/system scheduler
{... disable x}
[admin@MikroTik] system script> add name=log -x source={:log message=x}
[admin@MikroTik] system script> .. scheduler
[admin@MikroTik] system scheduler> add name=x -up start-time=00:00:00
... interval=24h on-event=enable-x
[admin@MikroTik] system scheduler> add name=x -down start-time=12:00:00
... interval=24h on-event=disable-x
[admin@MikroTik] system scheduler> add name=x start -time=00:00:00 interval=1h
... on-event=log-x
[admin@MikroTik] system scheduler> print
Flags: X - disabled
# NAME ON-EVENT START-DATE START-TIME INTERVAL RUN-COUNT
0 x-up enable-x oct/30/2008 00:00:00 1d 0
1 x-down disab... oct/30/2008 12:00:00 1d 0
2 x log-x oct/30/2008 00:00:00 1h 0
[admin@MikroTik] system scheduler>
Инструмент наблюдения за сетью
Спецификация
Требуемые пакеты: advanced-tools
Уровень лицензии: Level1
Уровень подменю: /tool netwatch
Стандарты и технологии: none
Аппаратные требования: не существенно
Описание
Сетевой монитор контролирует состояние хостов в сети. Делается это путем посылки
ICMP пакетов хостам указанным в списке. Для каждого элемента в списке наблюдения вы
можете определить IP адрес, интервал между посылками пакетов и консольный сценарий.
Главное преимущество наблюдателя это посылка произвольной команды на хосту
сменившему состояние.
Свойство описания
down-script(имя) - консольный сценарий исполняющийся единожды когда состояние
хоста изменяется на unknown или из up в down
host(IP адрес; по умолчанию: 0.0.0.0) - IP адрес хоста который будет наблюдаться.
interval(время; по умолчанию 1s) - время между посылками ICMP пакетов. Уменьшение
этого интервала увеличивает частоту опроса хоста, но создает избыточный трафик и
увеличивает потребление системных ресурсов.
since(только чтение: время) - показывает, когда в последний раз менялось состояние
хоста.
status(только чтение: up | down| unknown) - показывает текущий статус хоста.
up - хост в сети(отвечает)
down - хост не в сети(не отвечает)
unknown - такое состояние бывает после изменения всех свойств элемента в
списке наблюдения
или при включении/отключении элемента
timeout(время; по умолчанию: 1s) - таймаут для каждого пинга. Если нет ответа от хоста
за этот промежуток времени, то хост считается недоступным(down)
up-script(имя) - консольный сценарий исполняющийся единожды когда состояние хоста
меняется на unknown или из down в up
Пример
Этот пример будет запускать сценарии gw_1 или gw_2 которые изменяют шлюз по
умолчанию в зависимости от с остояния
одного из шлюзов:
[admin@MikroTik] system script> add name=gw_1 source={/ip route set
{... [/ip route find dst 0.0.0.0] gateway 10.0.0.1}
[admin@MikroTik] system script> add name=gw_2 source={/ip route set
{.. [/ip route find dst 0.0.0.0] gateway 10.0.0.217}
[admin@MikroTik] system script> /tool netwatch
[admin@MikroTik] tool netwatch> add host=10.0.0.217 interval=10s timeout=998ms
... up-script=gw_2 down-script=gw_1
[admin@MikroTik] tool netwatch> print
Flags: X - disabled
# HOST TIMEOUT INTERVAL STATUS
0 10.0.0.217 997ms 10s up
[admin@MikroTik] tool netwatch> print detail
Flags: X - disabled
0 host=10.0.0.217 timeout=997ms interval=10s since=feb/27/2003 14:01:03
status=up up-script=gw_2 down-script=gw_1
[admin@MikroTik] tool netwatch>
Без сценариев, наблюдатель может использоваться только как информационный
инструмент для просмотра активных соединений.
Давайте рассмотрим предыдущий пример в нем изменяется шлюз , по умолчанию, если
текущий шлюз становится недоступным.
Как это сделано? Есть два сценария. Сценарий "gw_2" исполняется единожды когда
состояние хоста изменяется на up
В нашем случае это эквивалентно вводу консольной команды:
[admin@MikroTik] > /ip route set [/ip route find dst 0.0.0.0] gateway 10.0.0.217
/ip route find dst 0.0.0.0 команда возвращающая список всех маршрутизторов чьё dst-
address значение равно 0.0.0.0. Обычно это шлюз по умолчанию. Затем изменяется
первый аргумент в команде /ip route set который изменяет шлюз этого маршрута на
10.0.0.217
Сценарий "gw_1" исполняется единожды когда состояние хоста становится down. При
этом выполняется следующее.
[admin@MikroTik] > /ip route set [/ip route find dst 0.0.0.0] gateway 10.0.0.1
Эта команда меняет шлюз по умолчанию если адрес 10.0.0.217 становится недоступен.
Вот другой пример сценария, он посылает на e -mail уведомление всякий раз когда хост
10.0.0.25 становится недоступным.
[admin@MikroTik] system script> add name=e -down source={/tool e-mail send
{... from="rieks@mt.lv" server="159.148.147.198" body="Router down"
{... subject="Router at second floor is down" to="rieks@latnet.lv"}
[admin@MikroTik] syste m script> add name=e-up source={/tool e-mail send
{... from="rieks@mt.lv" server="159.148.147.198" body="Router up"
{.. subject="Router at second floor is up" to="rieks@latnet.lv"}
[admin@MikroTik] system script>
[admin@MikroTik] system script> /tool n etwatch
[admin@MikroTik] system netwatch> add host=10.0.0.215 timeout=999ms
... interval=20s up-script=e-up down-script=e-down
[admin@MikroTik] tool netwatch> print detail
Flags: X - disabled
0 host=10.0.0.215 timeout=998ms interval=20s since=feb/2 7/2003 14:15:36
status=up up-script=e-up down-script=e-down
[admin@MikroTik] tool netwatch>
Трафик монитор
Спецификация
Требуемые пакеты: advanced-tools
Уровень лицензии: Level1
Уровень подменю: /tool-traffic monitor
Cтандарты и технологии: нет
Аппаратные требования: не существенно
Описание
Трафик монитор используется для исполнения консольных сценариев когда трафик на
интерфейсе переваливает за определенный порог.
Каждому элементу списка монитора сопоставлено имя (которое используется если вы
хотите отключить или внести изменения этого элемента из другого сценария), некоторые
параметры, определенные условия трафика и указатель на сценарий или намеченное
событие выполняемое когда удовлетворяется условие.
Cвойство описания
interface(имя) - просматриваемый интерфейс
name(имя) - имя элемента трафик монитора
on-event(имя) - код сценария. Должен присутствовать в /system script
threshold(целое; по умолчанию:0) - порог трафика
traffic(переданный | принятый; по умолчанию: transmitted(принятый)) - тип трафика для
просмотра
transmitted - переданный трафик
received - полученный трафик
triger(выше | всегда | ниже; по умолчанию: выше ) - условие для выполнения сценария
above - сценарий, который будет запущен каждый раз когда трафик превысит
порог
always - запуск обоих above и below сценариев при выполнении условия
below - запуск сценария при обратном условии, то есть когда трфик достигает
нижнего предела
Пример
В этом примере трафик монитор включает интерфейс ether2, если трафик превышает
15kbs на интерфейсе ether1 и отключает если полученный трафик падает ниже 12kbs на
ether1.
[admin@MikroTik] system script> add name=eth -up source={/interface enable ether2}
[admin@MikroTik] system script> add name=eth -down source={/interface disable
{... ether2}
[admin@MikroTik] system script> /tool traffic -monitor
[admin@MikroTik] tool traffic -monitor> add name=turn_on interface=ether1
... on-event=eth-up threshold=15000 trigger=above traffic=received
[admin@MikroTik] tool traffic -monitor> add name=turn_off interface=ether1
... on-event=eth-down threshold=12000 trigger=below traffic=received
[admin@MikroTik] tool traffic -monitor> print
Flags: X - disabled, I - invalid
# NAME INTERFACE TRAFFIC TRIGGER THRESHOLD ON -EVENT
0 turn_on ether1 received above 15000 eth -up
1 turn_off ether1 received below 12000 eth -down
[admin@MikroTik] tool traffic -monitor>
Sigwatch(наблюдение за сигналами)
Требуемые пакеты: advanced-tools
Уровень лицензии: Level1
Уровень подменю: /tools sigwatch
Стандарты и технологии: нет
Аппаратные требования: не существенно
Описание
Sigwatch может быть использована для наблюдением за пинами последовательного порта
Свойство описания
count(только чтение: целое) - сколько раз элемент был вызван. Счетчик и большинство
настроек элемента сбрасываются после перезагрузки
log(да | нет; по умолчанию no) - добавлять ли сообщения в форму имя -of-sigwatch-item:
сигнал изменился
[на high | на low] средствами System-info всякий раз когда элемент sigwatch запускается
name(имя) - имя элемента sigwatch
on-condition(on | off | change; по умолчанию: on) - включение условия запуска действия
данного элемента
on - включать когда состояние пинов изменяется на high
off - включать когда состояние пинов изменяется на low
- включать всяки раз когда состояние пинов изменяется. Если состояние пинов
изменяется слишком быстро,
то может быть запушено только одно действие для нескольких изменений
состояния
port(имя) - имя последовательного порта для наблюдения
script(имя) - сценарий который будет запускаться когда элемент активируется
signal(dtr | rts | cts | dcd | ri | dsr; по умолчанию: rts) - имя сигнала номер пина(для
стандартного девяти пинового коннектора)
dtr - Устройство ввода данных готово(пин 4)
rts - Запрос на посылку данных(пин 7)
cts - Очистить для посылки(пин 8)
dcd - Поиск носителя информации(пин 1)
ri - Индикатор(пин 9)
dsr - Готовый набор данных(пин 6)
state(только чтение; текст) - последнее зафиксированное состояние отслеженного сигнала
Примечание
Вы можете указать фактический код сценария вместо имени сценария из /system script
списка.
Пример
Представленный ниже пример будет добавлять новый элемент sigwatch к монитору всякий
раз когда порт serial1 получит cts сигнал.
[admin@10.179] tool sigwatch> pr
Flags: X - disabled
# NAME PORT SIGNAL ON -CONDITION LOG
0 test serial1 cts change no
[admin@MikroTik] tool sigwatch>
При помощи команды print detail interval=1s, вы можете всякий раз проверять
подключен ли кабель. Смотрите аргумент state если кабель подключен к
последовательному порту состояние будет on, в противном случае off.
Пример
[admin@MikroTik] tool sigwatch> print detail
Flags: X - disabled
0 name="test" port=serial1 signal=cts on -condition=change log=no script=""
count=1 state=on
[admin@MikroTik] tool sigwatch> print detail
Flags: X - disabled
0 name="test" port=serial1 signal=cts on -condition=change log=no script=""
count=1 state=on
[admin@MikroTik] tool sigwatch> print detail
Flags: X - disabled
0 name="test" port=serial1 signal=cts on -condition=change log=no script=""
count=2 state=off
[admin@MikroTik] tool sigw atch> print detail
Flags: X - disabled
0 name="test" port=serial1 signal=cts on -condition=change log=no script=""
count=2 state=off
[admin@MikroTik] tool sigwatch>
В меню port вы можете просмотреть какой сигнал используется последовательным
кабелем.
Например при неподключенном кабеле вы увидите следующее
[admin@MikroTik] port> print stats
0 name="serial0" line-state=dtr,rts
1 name="serial1" line-state=dtr,rts
[admin@MikroTik] port>
Но после подключения кабеля к последовательному порту
[admin@MikroTik] port> print stats
0 name="serial0" line-state=dtr,rts
1 name="serial1" line-state=dtr,rts,cts
[admin@MikroTik] port>
Это означает что при подключении кабеля к последовательному порту помимо сигналов
dtr,rts появился сигнал cts
В следующем примере будет выполнятся сценарий всякий раз когда состояние с on-
condition перейдет в
off
[admin@10.MikroTik] tool sigwat ch> pr detail
Flags: X - disabled
0 name="cts_rest" port=serial1 signal=cts on -condition=off log=no
script=/system shutdown count=0 state=on
[admin@10.MikroTik] tool sigwatch>
В примере показано следующее: если кабель подключен к последователь ному порту то
маршрутизатор работает без проблем. Но как только кабель отключат маршрутизатор
отключится. Это будет продолжаться до тех пор пока кабель не подключат. к
маршрутизатору.

Спонсоры данной статьи


Категория: Документация | Добавил: -=shurf=- (26.07.2010)
Просмотров: 9393 | Комментарии: 4 | Рейтинг: 0.0/0

Настройка Mikrotik
Службы, протоколы и порты
Mikrotik. FireWall задача посл...
Mikrotik - списки и группы адр...
Защита mikrotik от внешних вто...
Списки адресов
Серверные сценарии ч.1
Как управлять программным Raid...
Mikrotik. Манипуляции с DNS. Д...
FTP server
NAT

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Профиль
Привет: Гость

Сообщения:

Гость, мы рады вас видеть. Пожалуйста зарегистрируйтесь или войдите!

Реклама

Наш опрос
Нужен ли этому сайту форум?
Всего ответов: 55

Нашел ошибку?
Система Orphus

Статистика

Онлайн всего: 2
Гостей: 1
Пользователей: 1
Kamorkaskn



Бесплатный хостинг uCoz