Jump to content

Помогите написать скрипт


Recommended Posts

Posted (edited)

Вобщем нужно написать скрипт, который будет определять значение LastActivity, и в случае если оно больше 500 - перезагружать роутер.

w2WgrUaJ.png

софт писал я лет 5 назад, и то на уровне начинающего, потому буду несколько дней разбираться. Может у кого свежий мозк, помогите плз?

 

на скорую руку набросал такое, но дает ошибку, пока не разобрался

 

while (true) do={:local creg [/in wi reg print count-only];
:local counts ($creg -1); 
:for x from=0 to=$counts do={:local a [/in wi reg get number=$x last-activity];
:if (a>=300) do={:put “run”;} else={:put “No run”;}}; delay 10}

Edited by MikroUser
Posted

НЕ помогает, помоему мы вопрос скоростей и их теста в соседней ветке бурно обсуждали и тестировали. Скрипт - последняя надежда. Вот толкьо почему он не работает, непонятно.

такое ощущение что не может извлечь last-activity, какбудьто в 6,4 сию функцию убрали! ((

Posted

Вобщем нужен мозк программирования, ибо тут без 100граммов не разберешся)

 

5hwDDYTc.png

 

получается что можно считать параметр last-activity. но он гад выводится в формате hh.mm.ss.mls

следовательно мы не можем выполнить :if (a>=300) do={... потому что переменная a - не есть целое число.

 

есть идея, обрезать последние 7 символов переменной $A , назначить переменную $b. вписать что-то на подобии :if (b>='00:01') do={... тогда по идее скрипт должен заработать без ошибок. но вот как отрезать последне 7 сиволов мой мозк еще не вспомнил. короче, думаем дальше.

Posted

Полночи не поспал, помог себе сам.

Скрипт получился следующий

while (true) do={:local a [/in wi reg get number=0 last-activity]; :local b {[:pick $a +4]}; :put $b; :if (b=1) do={[/system reboot];} else={:delay 10;}};}

т.е. он читает значение минут, если последняя активность =1 минута(+59сек) значит радио подвисло и роутер надо перезагрузить. если активность меньше минуты - ждем 10 сек и выполнняем скрипт заново.

 

по идее должно работать :) но есть одно но, в терминале запустить сей скрипт - спрашивает подтверждение, перезагрузить или нет, и пока не нажмешь y он не перегружает. но на форуме микротика пишут что должно и так работать.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...