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

Автоматизация при помощи встроенного скриптового языка и RouterOS API
tmbvolk
Сообщения: 3
Зарегистрирован: 14 июл 2021, 18:21

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

Сообщение tmbvolk »

Имееться lhgg lte6 нужен скрипт который будет работать по такому принципу.

Если падает линк не пингуеться 8.8.8.8
То должно делаться первое действие переключать сектор

если нет опять пинга то переключать на второй сектор

А если опять нет то он выполняет перезагрузку интерфейса

:if ([/ping 8.8.8.8 count=10 size=64 interval=2s]=0) do={
:log error "LTE DOWN";
/interface lte at-chat lte1 input="AT+reset"
} else={
:log info "LTE FINE";
}[/quote]

Перезагрузка интерфейса работает, а как сделать первые два до до треиьего не как не соображу.
Аватара пользователя
Chupaka
Сообщения: 4089
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите с написанием скрипта.

Сообщение Chupaka »

А что значит "переключать сектор" и "переключать на второй сектор"? В идеале - в командах терминала.
tmbvolk
Сообщения: 3
Зарегистрирован: 14 июл 2021, 18:21

Re: Помогите с написанием скрипта.

Сообщение tmbvolk »

Если пинга нет то срабатывает вот

/interface lte at-chat lte1 input="AT*Cell=2,3,,2850,400"

Если опять нет то

/interface lte at-chat lte1 input="AT*Cell=2,3,,3085,400"

А если опять нет. То делает ресет модема.

Когда дома я могу и в терминале все набрать, а вот жена не сможет.
Аватара пользователя
Chupaka
Сообщения: 4089
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите с написанием скрипта.

Сообщение Chupaka »

Например, как-то так:

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

:if ([/ping 8.8.8.8 count=10 size=64 interval=2s]=0) do={
	:log error "LTE DOWN - 1"
	/interface lte at-chat lte1 input="AT*Cell=2,3,,2850,400"
	
	:if ([/ping 8.8.8.8 count=10 size=64 interval=2s]=0) do={
		:log error "LTE DOWN - 2"
		/interface lte at-chat lte1 input="AT*Cell=2,3,,3085,400"
		
		:if ([/ping 8.8.8.8 count=10 size=64 interval=2s]=0) do={
			:log error "LTE DOWN - 3"
			/interface lte at-chat lte1 input="AT+reset"
			
			:if ([/ping 8.8.8.8 count=10 size=64 interval=2s]=0) do={
				:log error "LTE still DOWN :("
			} else={
				:log info "LTE FINE after 3";
			}
		} else={
			:log info "LTE FINE after 2";
		}
	} else={
		:log info "LTE FINE after 1";
	}
} else={
	:log info "LTE just FINE";
}
Если после команд требуется больше 20 секунд времени на подключение - можно добавить перед очередным пингом задержку:

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

:delay 30s;
tmbvolk
Сообщения: 3
Зарегистрирован: 14 июл 2021, 18:21

Re: Помогите с написанием скрипта.

Сообщение tmbvolk »

большое спасибо все работает
Leonid_gun
Сообщения: 2
Зарегистрирован: 27 окт 2021, 12:19

Re: Помогите с написанием скрипта.

Сообщение Leonid_gun »

Доброго времени всем.
Не стал плодить еще одну тему в Скриптах, поэтому прошу помощи здесь.
Проверяю пингом каналы и туннели. Если туннель есть но пинги не ходят, иногда помогоает
в \IP IpSec InstalledSAs командная кнопка Flush с опцией All.
Как выполнить Flush All из скрипта?
Аватара пользователя
Chupaka
Сообщения: 4089
Зарегистрирован: 29 фев 2016, 15:26
Откуда: Минск

Re: Помогите с написанием скрипта.

Сообщение Chupaka »

Здравствуйте.

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

/ip ipsec installed-sa flush
Leonid_gun
Сообщения: 2
Зарегистрирован: 27 окт 2021, 12:19

Re: Помогите с написанием скрипта.

Сообщение Leonid_gun »

Chupaka писал(а): 27 окт 2021, 14:23 Здравствуйте.

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

/ip ipsec installed-sa flush
Спасибо. Не работала у меня эта команда без дефиса :D