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

Автоматизация при помощи встроенного скриптового языка и 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
Сообщения: 3172
Зарегистрирован: 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
Сообщения: 3172
Зарегистрирован: 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 »

большое спасибо все работает