Помогите перестал работать скрипт в ROSv7

Автоматизация при помощи встроенного скриптового языка и RouterOS API
Аватара пользователя
Dominik
Сообщения: 23
Зарегистрирован: 09 июл 2018, 12:59

Помогите перестал работать скрипт в ROSv7

Сообщение Dominik »

Нужный скрипт (Скрипт проверки/восстановления работоспособности LTE), который работал в 6-ой версии перестал работать в 7-ой
Я не силен в скриптах микротика, буду признателен и благодарен, если кто поможет скоректировать его:

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

#---------------------------------------------------------------------------
# Скрипт проверки/восстановления работоспособности LTE
#---------------------------------------------------------------------------

:local lteIs [:toarray ""]
:local ltenum 0

# Находим перебором все lte-интерфейсы и помещаем их имена в массив $lteIs
:foreach counter in=[/interface lte find] do={
:set ($lteIs->$ltenum) [/interface lte get $counter name];
:set $ltenum ($ltenum+1)
}

:if ([:len $lteIs]!=0) do={
   :log info ""
    :log warning ("Роутер "."$[/system identity get name] "."lte-модемов: "."$[:len $lteIs]")
    :local ltecmd
    :local Ltestatus
    :local typepar "registration-status";
#:local ltenum [:len $lteIs]
    :local ltename
         :while ($ltenum!=0) do={
#:set $ltename ("lte"."$[:tostr $ltenum]")
              :set $ltename [pick $lteIs ($ltenum-1)];: log warning ("Проверка интерфейса "."$ltename "."....")
                   :if ([/interface lte get $ltename disabled]) do={:log warning "Lte-интерфейс $ltename был отключен. Включаем его для проверки ..."; [/interface lte enable $ltename];
                      :log warning "Lte-интерфейс $ltename включен. Ожидаем инициализацию модема ..."; :delay 20s;}
                           :if ([/ping 8.8.8.8 interface=$ltename count=5]>2) do={:log info "Модем активен и подключен. Есть выход в Интернет через $ltename"; :set $ltenum ($ltenum-1);}
                           :if ([/ping 8.8.8.8 interface=$ltename count=5]=0) do={
                                :if (![/interface lte get $ltename disabled]) do={
                                  # get Lte modem status
                                  :set ltecmd [/interface lte info $ltename once as-value]
                                  :set Ltestatus ($ltecmd->$typepar);
                                  :do {:delay 1s; :set Ltestatus ([/interface lte info $ltename once as-value]->"$typepar")} while=([:len ([/interface lte info $ltename once as-value]->"$typepar")]=0)
                                       :if (($Ltestatus="registered") && ([/ping 8.8.8.8 interface=$ltename count=5]>2)) do={:log warning "Появление доступа в интернет через $ltename"} else={ 
                                            :if (($Ltestatus="registered") or ($Ltestatus="unknown") or ($Ltestatus="not searching") or ($Ltestatus="denied")) do={
                                            :log error "Lte интерфейс $ltename активен, но не пингует 8.8.8.8 - отключаем его ...."
                                                :if ([/ping 8.8.8.8 interface=$ltename count=5]>2) do={:log warning "Появление доступа в Интернет на интерфейсе $ltename. Оставлен включенным"} else={
                                                [/interface lte disable $ltename];}
                 :log info "Скрипт отключил интефейс $ltename"} else={:log warning "Lte интерфейс $ltename активен, его статус не определён, возможно идёт настройка соединения ... ";}
                                     }
                                 } else={log info "Lte интерфейс $ltename в системе отключен"}
:set $ltenum ($ltenum-1);}
               }
 } else={:log warning "LTE-интерфейсы не найдены"}
:log warning "Проверка LTE-интерфейсов окончена"
Цифровая типография в Москве здесь
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите перестал работать скрипт в ROSv7

Сообщение Chupaka »

А как именно он перестал работать? В Логе вообще больше ничего не появляется, или что-то всё же есть при запуске?
Аватара пользователя
Dominik
Сообщения: 23
Зарегистрирован: 09 июл 2018, 12:59

Re: Помогите перестал работать скрипт в ROSv7

Сообщение Dominik »

Изображение
дальше ничего не происходит и не пишет в логах

p.s. вчера заметил,а потом вспомнил, что недавно вносил правки в конфиг, для работы SXT R как Passtrought
Так вот, из этого конфига с порта lte1 не пингуется 8.8.8.8
Порт смотрящий в инет остался "man"
Может я чего то не так сделал? Мой конфиг SXT-R ниже

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

# 2024-04-19 10:26:32 by RouterOS 7.14.2
# software id = QJ0G-51TA
#
# model = RBSXTR
# serial number = XXXXXXXXXXXX
/interface ethernet
set [ find default-name=ether1 ] auto-negotiation=no
set [ find default-name=ether2 ] disabled=yes
/interface lte
set [ find default-name=lte1 ] allow-roaming=no band="" network-mode=3g,lte \
    sms-read=no
/interface vlan
add interface=ether1 name=man vlan-id=100
add interface=ether1 name=net vlan-id=101
/interface list
add name=WAN
add name=LAN
/interface lte apn
set [ find default=yes ] ip-type=ipv4 passthrough-interface=net \
    passthrough-mac=auto use-network-apn=no
add apn=yota.ru ip-type=ipv4 name=YOTA
add apn=home.beeline.ru authentication=chap ip-type=ipv4 name=beeline user=\
    beeline
/ip smb users
set [ find default=yes ] disabled=yes
/routing bgp template
set default disabled=no output.network=bgp-networks
/routing ospf instance
add disabled=yes name=default-v2
/routing ospf area
add disabled=yes instance=default-v2 name=backbone-v2
/routing table
add disabled=no fib name=vpn-table
/interface bridge settings
set allow-fast-path=no
/ip firewall connection tracking
set udp-timeout=10s
/ip neighbor discovery-settings
set discover-interface-list=LAN
/ip settings
set allow-fast-path=no max-neighbor-entries=8192
/ipv6 settings
set disable-ipv6=yes max-neighbor-entries=8192
/interface detect-internet
set internet-interface-list=WAN lan-interface-list=LAN wan-interface-list=WAN
/interface list member
add interface=man list=LAN
add interface=lte1 list=WAN
add interface=ether1 list=LAN
/interface ovpn-server server
set auth=sha1,md5
/ip dhcp-client
add dhcp-options=clientid interface=man script="\r\
    \n"
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=8.8.8.8 disabled=yes name=google.com
/ip firewall service-port
set ftp disabled=yes
set tftp disabled=yes
set h323 disabled=yes
set sip disabled=yes
set pptp disabled=yes
set udplite disabled=yes
set dccp disabled=yes
set sctp disabled=yes
/ip service
set telnet disabled=yes
set ftp disabled=yes
set www port=8080
set ssh disabled=yes
set api disabled=yes
set api-ssl disabled=yes
/ip smb shares
set [ find default=yes ] directory=/flash/pub
/routing bfd configuration
add disabled=no
/routing rule
add action=lookup-only-in-table disabled=yes table=main
/system clock
set time-zone-autodetect=no time-zone-name=Europe/Moscow
/system identity
set name=LTE6
/system note
set show-at-login=no
/system ntp client
set enabled=yes
/system routerboard settings
set auto-upgrade=yes
/system watchdog
set automatic-supout=no watchdog-timer=no
/tool bandwidth-server
set enabled=no
/tool e-mail
set [email protected] port=465 server=smtp.mail.ru tls=yes user=\
    [email protected]
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
/tool mac-server ping
set enabled=no
/tool netwatch
add disabled=no down-script="" host=8.8.8.8 http-codes="" interval=15s \
    test-script="" timeout=5s type=simple up-script="tool e-mail send to=info@m\
    ail.ru subject=\"WORK LTE Mikrotik UP\" body=\"Mikrotik Work is UP\
    \""
/tool romon
set enabled=yes
/tool sms
set receive-enabled=yes
Цифровая типография в Москве здесь
Аватара пользователя
Chupaka
Сообщения: 4095
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите перестал работать скрипт в ROSv7

Сообщение Chupaka »

При включении LTE Passthrough роутер больше не работает сам с модемом и не может через него выходить куда-либо - поэтому 8.8.8.8 и не пингуется?.. Интернет через LTE работает только на клиентском девайсе.