Задача - флапает кабель редко, надо понять - где то передавлен или просто надо пережать коннектор. Ну то есть ехать с обжимником или еще бухту витухи тащить на себе.
скрипт пишет и в лог и в ТГ нотифает, запускать можно через нетватч (в нем можно гибко задать интервал проверки) или ручками... (поменять интерфейс ether3_DVR / bot id / key id / chat ID )
:local link;
:local pairs;
:local chatid "ХХХХХХХХ";
:local botid "botХХХХХХХХ";
:local keyid "ХХХХХХХХХХХ";
/interface ethernet cable-test ether3_DVR once do={
:set link $"cable-pairs";
};
:if ($link != "link-ok") do={
/log error "$link";
/tool fetch url="https://api.telegram.org/$botid:$keyid/sendMessage\?chat_id=$chatid&text=test1&disable_notification=true" output=none
};
- В режиме теста можно заменить :set link $"cable-pairs"; на :set link $"status"; если не хочеться тыкать на рваном кабеле (cable-pairs покажеться только при разрыве кабеля иначе пишет что ттатус ок ) и условие :if ($link != "link-ok") do={ на :if ($link = "link-ok") do={
UPD
Для того чтобы не светить в каждом скрипте креды бота правильней будет сделать следующее
Для того чтобы не светить в каждом скрипте креды бота правильней будет сделать следующее
1 в System:Scripts.Environment задать переменные при старте роутера
2 в самом скрипте уже вызывать их
в scheduler прописываем
/system scheduler
а в скрипте уже вызываем
/system scheduler
add name=environment on-event=":global chatid \"хххххххххххх\";\
\n:global botid \"botххххххххххх\";\
\n:global keyid \"ххххххххххххххх\";" policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon start-time=startup
а в скрипте уже вызываем :local botid ([/system script environment get [find name=botid] value]);
:local keyid ([/system script environment get [find name=keyid] value]);
:local chatid ([/system script environment get [find name=chatid] value]);
полный вариант скрипта будет такой
:local link;
:local pairs;
:local botid ([/system script environment get [find name=botid] value]);
:local keyid ([/system script environment get [find name=keyid] value]);
:local chatid ([/system script environment get [find name=chatid] value]);
/interface ethernet cable-test ether5_FORtest once do={
:set link $"cable-pairs";
};
:if ($link != "link-ok") do={
/log error "$link";
/tool fetch url="https://api.telegram.org/$botid:$keyid/sendMessage\?chat_id=$chatid&text=DVRcabletest $link&disable_notification=true" output=none
};
Это не спасет если роутер будет скопраментирован, но в случае если уплывет куда то именно тексовый конфиг (что выдается при /system export) - Environment там не засветиться.