Страница 1 из 3

Как правильно написать скрипт в микротике

Добавлено: 22 окт 2014, 03:59
Сержа
Всем добрый день!
Делаю резервный канал с использованием USB модема
есть статья http://papa-admin.ru/blog/mikrotik/avto ... yj-3g.html
написан скрипт по переподключению между основным провайдером и резервным (в случае если первый не доступен).
Подскажите как правильно вписать этот скрипт в mikrotike через winbox. т.к я вставляю код нажимаю выполнить а мне в ответ:

Код: Выделить всё

input does not match any value of policy


или может кто предложит свой вариант переподключения от основного на резервный канал и обратно))))

Re: Как правильно написать скрипт в микротике

Добавлено: 22 окт 2014, 08:23
podarok66
Какой код? Куда вставляете? Будьте добры свои действия пошагово и с подробностями. А то были прецеденты, после двух страниц советов оказывалось, что стартовый вопрос не о том.

Re: Как правильно написать скрипт в микротике

Добавлено: 22 окт 2014, 20:05
vqd
Ну на халяву только такова же уровня как по ссылке ))
Что то более серьёзное уже продается или пишется самостоятельно

Re: Как правильно написать скрипт в микротике

Добавлено: 23 окт 2014, 09:50
Сержа
подключаюсь к маршрутизатору через WinBox и New Terminal, ввожу

Код: Выделить всё

/system script
add name=backup3G policy=\
    ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api \
    source="#Name:          backup3G\r\
    \n#Version:       1.0\r\
    \n#Created:       Gerasimov A.\r\
    \n#Web:           http://papa-admin.ru\r\
    \n#Date:          01.2014\r\
    \n#Description:  failover for 3G modem\r\
    \n#\r\
    \n:local PingCount 3;\r\
    \n\r\
    \n:local InterfaceWan wan;\r\
    \n:local Interface3G ppp-3G;\r\
    \n:local CheckIp 8.8.4.4;\r\
    \n:local Use3G false;\r\
    \n\r\
    \n:local WANstatus [/interface get [/interface find name=\"\$InterfaceWan\
    \"] running];\r\
    \n:if (\$WANstatus=false) do={\r\
    \n\t:set Use3G true;\r\
    \n} else {\r\
    \n\t:local CheckMainISP [/ping \$CheckIp count=\$PingCount interface=\$InterfaceWan];\r\
    \n\t:if (\$CheckMainISP=3) do={\r\
    \n\t\t:set Use3G false;\r\
    \n\t} else {\r\
    \n\t\t:set Use3G true;\r\
    \n\t}\r\
    \n}\r\
    \n:local 3Gstatus [/interface get [/interface find name=\"\$Interface3G\"]\
    \_running];\r\
    \n:if (\$Use3G=true) do={\r\
    \n\tif (\$3Gstatus=false) do={\r\
    \n\t\t/interface enable [find name=\"\$Interface3G\"];\r\
    \n\t\t:log warning \"Set routes to 3G ISP\";\r\
    \n\t}\r\
    \n} else {\r\
    \n\t:if (\$3Gstatus=true) do={\r\
    \n\t\t/interface disable [find name=\"\$Interface3G\"];\r\
    \n\t\t:log warning \"Set routes to Main ISP\";\r\
    \n\t}\r\
    \n}\r\
    \n"


Мне в ответ:

Код: Выделить всё

input does not match any value of policy

Re: Как правильно написать скрипт в микротике

Добавлено: 23 окт 2014, 11:13
vqd
а эти условия у вас соблюдены?

Код: Выделить всё

    \n:local InterfaceWan wan;\r\
    \n:local Interface3G ppp-3G;\r\

Ну и политики поправте

Re: Как правильно написать скрипт в микротике

Добавлено: 23 окт 2014, 15:03
podarok66
И вопрос еще, юзер, от лица которого Вы к Микротику подключаетесь имеет достаточно прав?

Re: Как правильно написать скрипт в микротике

Добавлено: 23 окт 2014, 15:15
Сержа
Права полные.



\n:local InterfaceWan wan;\r\
\n:local Interface3G ppp-3G;\r\

Условия да соблюдены даже учитывая регистр.

А что значит
Ну и политики поправьте

Re: Как правильно написать скрипт в микротике

Добавлено: 23 окт 2014, 15:21
vqd
скрипты надо не копи/пасте делать а думать. Например с 6,5 на 6,20 допиливать надо

Re: Как правильно написать скрипт в микротике

Добавлено: 23 окт 2014, 15:24
vqd
конкретно в вашем случае проблема в

policy=\
ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api

Попробуйте удалить данную строчку. Потом в винбоксе зайдете и натыкаете нужных прав

Re: Как правильно написать скрипт в микротике

Добавлено: 23 окт 2014, 16:59
Сержа
Убрал данную строчку, теперь пишет:
    failure: item with such name already exists

вот скрин:
Изображение