Необходим скрипт для отсылки периодического http запроса с роутера MikroTik

Здесь выкладываем скрипты
Правила форума
Уважаемые Пользователи форума, обратите внимание!
Ни при каких обстоятельствах, Администрация форума, не несёт ответственности за какой-либо, прямой или косвенный, ущерб причиненный в результате использования материалов, взятых на этом Сайте или на любом другом сайте, на который имеется гиперссылка с данного Сайта. Возникновение неисправностей, потерю программ или данных в Ваших устройствах, даже если Администрация будет явно поставлена в известность о возможности такого ущерба.
Просим Вас быть предельно осторожными и внимательными, в использовании материалов раздела. Учитывать не только Ваши пожелания, но и границы возможностей вашего оборудования.
Ответить
er1cc
Сообщения: 3
Зарегистрирован: 23 июн 2019, 22:54

Приветствую!
Провайдер кабельного интернета отключает абонента при отсутствии активности этого абонента в течение 3-х суток.
Соответственно доступ к VPN организованному на роутере MikroTik этого абонента пропадает.
Но достаточно зайти на любой сайт по Wi-Fi или LAN через этот абонентский роутер и провайдер "просыпается" и последующие 3-е суток всё работает.
Скажу сразу, я не специалист в написании скриптов для RouterOS, поэтому был бы весьма признателен за готовый скрипт в задачу которого будет входить отправка любого http запроса на любой сайт, один раз в 72 часа :smu:sche_nie:

P.S. А может быть и скрипт не нужен, а будет достаточно создать в Schedule расписание выполнения команды пинга любого сайта (Google например) ?


Sertik
Сообщения: 1601
Зарегистрирован: 15 сен 2017, 09:03

Ну так попробуйте !


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Аватара пользователя
podarok66
Модератор
Сообщения: 4360
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Попробуйте в шедуллере запускать раз в сутки такой скриптик:

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

{:global fin; :local tmp [/tool fetch url=https://yandex.ru/time/ as-value output=user]; :set fin ($tmp -> "status");}
В этом варианте точно есть запрос на сайт, потом проверка статуса исполнения запроса позволит при нужде ещё что-нибудь прикрутить.
Настоятельно прошу опубликовать результаты работы скрипта, вернее то, как это пройдет с вашим провайдером :-)


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
er1cc
Сообщения: 3
Зарегистрирован: 23 июн 2019, 22:54

podarok66 писал(а): 24 июн 2019, 20:57 Попробуйте в шедуллере запускать раз в сутки такой скриптик:

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

{:global fin; :local tmp [/tool fetch url=https://yandex.ru/time/ as-value output=user]; :set fin ($tmp -> "status");}
В этом варианте точно есть запрос на сайт, потом проверка статуса исполнения запроса позволит при нужде ещё что-нибудь прикрутить.
Настоятельно прошу опубликовать результаты работы скрипта, вернее то, как это пройдет с вашим провайдером :-)
Благодарю. Не обещаю, но возможно проэкспериментирую с вашим скриптом при наличии времени.
Пока установил найденный сегодня в сети следующий скриптик:

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

:do {
/tool fetch url="http://mysite.org/wakeup_provider.html" mode=http
:delay 10;
/file remove "wakeup_provider.html"
} on-error={
log warning ("http://mysite.org was DOWN")
/tool e-mail send server=smtp.mail.ru port=25 tls=yes user=mikrotik_001@mail.ru password=PASS to=staff372@mail.ru subject="Server was DOWN" body="Server was DOWN"
}
Заодно позволяет следить за доступностью сайта.
До этого организовал на NetWatch, но подумал, что ICMP могут не "разбудить" роутер провайдера.

Ну и в любом случае, отпишусь по результату "пробуждения" провайдера текущим скриптом.
Хотя я "будил" его в ручном режиме именно загрузкой всего одной html страницы, так что 99,9% что текущий скрипт справится с этой задачей.
Для практической проверки необходимо ехать на дачу на 4 дня... не знаю когда это у меня получится :)


Аватара пользователя
podarok66
Модератор
Сообщения: 4360
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

Да блин, это безумие какое-то!!! Вы скрипт-то анализировали? К своей ситуёвине прикладывали?
На кой ляд вам сообщение на почту о недоступности сайта, если такая ситуация в вашем случае означает отключение интернета провайдером и как следствие никакого письма не отошлётся. Или вы думаете, что вам его Печкин принесёт?
Потом, в вашем варианте вы скачиваете целую страницу, которую потом приходится уничтожать. Вариант с output=user мне кажется гораздо предпочтительнее, при нём данные сохраняются в локальную переменную. По окончании работы скрипта переменная уничтожается автоматом, а в глобальной, которая заявлена в начале скрипта остаётся лишь статус. Как вариант можно каждую отработку скрипта писать статус в лог-файл, будет потом видно, когда всё произошло. Только запускать скрипт почаще для более оперативного отслеживания изменений. Раз в 10 минут, например.
Думайте, прежде чем копипастой заниматься.


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
er1cc
Сообщения: 3
Зарегистрирован: 23 июн 2019, 22:54

podarok66 писал(а): 25 июн 2019, 20:56 Да блин, это безумие какое-то!!!
Почти с вами согласен :-):
podarok66 писал(а): 25 июн 2019, 20:56Вы скрипт-то анализировали?
В силу своих скудных познаний в этом вопросе - анализировал, но ничего более подходящего для своей задачи, не нашел.
podarok66 писал(а): 25 июн 2019, 20:56На кой ляд вам сообщение на почту о недоступности сайта, если такая ситуация в вашем случае означает отключение интернета провайдером и как следствие никакого письма не отошлётся.
Не только отключение интернета провайдером, а и падение сайта тоже. Если падает сайт то письмо отсылается, проверил.
podarok66 писал(а): 25 июн 2019, 20:56Потом, в вашем варианте вы скачиваете целую страницу, которую потом приходится уничтожать.
Страницу я сделал в пару байт, да и уничтожается она в процессе работы скрипта, насколько мои весьма скудные познания позволяют мне понять, точнее даже предположить это :-):
podarok66 писал(а): 25 июн 2019, 20:56Вариант с output=user мне кажется гораздо предпочтительнее, при нём данные сохраняются в локальную переменную. По окончании работы скрипта переменная уничтожается автоматом, а в глобальной, которая заявлена в начале скрипта остаётся лишь статус. Как вариант можно каждую отработку скрипта писать статус в лог-файл, будет потом видно, когда всё произошло. Только запускать скрипт почаще для более оперативного отслеживания изменений. Раз в 10 минут, например
И тут я с вами почти согласен. "Почти" только потому что мало понимаю о чём речь :smu:sche_nie:
Но я с удовольствием протестирую ваш скрипт, если вы его любезно предоставите в варианте полностью готовым для copy-paste, так как на большее моих "познаний", увы не хватит.
Клятвенно обещаю предоставить полный отчет о том, решит ли ваш скрипт проблему с "пробуждением" провайдера интернета.


Аватара пользователя
podarok66
Модератор
Сообщения: 4360
Зарегистрирован: 11 фев 2012, 18:49
Откуда: МО

er1cc писал(а): 27 июн 2019, 02:12 Но я с удовольствием протестирую ваш скрипт, если вы его любезно предоставите в варианте полностью готовым для copy-paste, так как на большее моих "познаний", увы не хватит.
Отвратительный подход. Простите, но мне ещё мама в детстве говорила:"У Неумею руки не болят" . Направление я вам дал, вот тут https://wiki.mikrotik.com/wiki/Manual:Scripting моя любимая страница. 80% вопросов она снимает, хотя есть, конечно, отдельные темы в скриптинге, которые могут прояснить в основном лишь такие асы, как vqd. Но у вас-то всё просто и прозрачно.
er1cc писал(а): 27 июн 2019, 02:12 Не только отключение интернета провайдером, а и падение сайта тоже. Если падает сайт то письмо отсылается, проверил.
За каким бесом вам сведения о падении Яндесковского сайта, или так какого нибудь Гугла. Адрес-то прикручивается нужный, лишь бы страница была полегче и гарантированно доступна (хотя бы в теории)
er1cc писал(а): 27 июн 2019, 02:12 Страницу я сделал в пару байт, да и уничтожается она в процессе работы скрипта, насколько мои весьма скудные познания позволяют мне понять, точнее даже предположить это
Самая главная разница - место хранения. К сожалению ПЗУ микротиков бывает не очень вынослива. Хотя, логи-то пишем, и как бы не паримся... Я не очень люблю вообще что либо писать лишнее в Files. Нервирует меня куча лишних файлов. Я и Dude из-за этого избегаю юзать.
Ну а если уж совсем не желаете напрягаться - на форуме есть раздел платной помощи, где можно составить задание и кто-нибудь откликнется (по секрету сообщу - я там никогда ничего не брал к исполнению :-) ). Думаю, что это будет не слишком дорого в свете уже обсуждённого.
Тему считаю полностью обсужденной. Удачи...


Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
Ответить