เชฌเชงเชพ เชชเชพเชเชฒเซ เชฐเชเชพ เชธเชพเชฅเซ. เช เชฅเซเชฎ เชตเชงเซ เชธเชพเชฐเซ เชเซ
เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ, เชเชชเชฐเซเชถเชจเชจเซ เชธเชฟเชฆเซเชงเชพเชเชค เชฌเชฆเชฒเชพเชฏเซ เชจเชฅเซ, เชฎเชพเชคเซเชฐ เชเชเชฒเซ เช เชคเชซเชพเชตเชค เชเซ เชเซ เชนเชตเซ เชคเซ เชตเชฟเชฒเชเชฌ เชเชฐเซเชฏเชพ เชตเชฟเชจเชพ เชคเชฐเชค เช เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ.
เช
เชฎเซ เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ Mikrotik เชชเชฐ เช
เชชเชฒเซเชก เชเชฐเซเช เชเซเช, BotID เช
เชจเซ ChatID เช
เชฎเชพเชฐเชพ เชชเซเชคเชพเชจเชพเชฎเชพเช เชฌเชฆเชฒเซเช เชเซเช เช
เชจเซ เชคเซเชจเชพ เชฎเชพเชเซ เชถเซเชกเซเชฏเซเชฒ เชฌเชจเชพเชตเซเช เชเซเช. เชธเซเชเชพเชฐเซเชเช
เชช เชฎเชพเชเซ "เชธเซเชเชพเชฐเซเช เชเชพเชเชฎ" เชชเซเชฐเชพเชฎเซเชเชฐ เชธเซเช เชเชฐเซ (เชธเซเชเชพเชฐเซเชเช
เชช เชตเชเชคเซ เชธเซเชเซเชฐเชฟเชชเซเช เชเชฒเชพเชตเซ.)
เช
เชเชคเชฐเชพเชฒ: 00:00:00
เชฌเชพเชเซเชจเซเช เชฌเชงเซเช เชเซเชฎ เชนเชคเซเช เชคเซเชฎ เชเซ.
เชเซเชฒเชฟเชเซเชฐเชพเชฎ-v2
:delay 10
:global mtIdentity [/system identity get name];
:global botID "botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX" ;
:global myChatID "YYYYYY" ;
:local chatId 0;
:local messageId 0;
:local parse do={
:local startLoc ([:find $content $variable -1] + [:len $variable] + 2);
:local commaLoc ([:find $content "," $startLoc] - 1 + 1);
:local braceLoc ([:find $content "}" $startLoc] - 1 + 1);
:local endLoc $commaLoc;
:local startSymbol [:pick $content $startLoc]
:if ($braceLoc != 0 and ($commaLoc = 0 or $braceLoc < $commaLoc)) do={
:set endLoc $braceLoc;
};
:if ($startSymbol = "{") do={
:set endLoc ($braceLoc + 1);
};
:if ($quotas = true) do={
:set startLoc ($startLoc + 1);
:set endLoc ($endLoc - 1);
}
:if ($endLoc < $startLoc) do={
:set endLoc ($startLoc + 1);
};
:local message [:pick $content $startLoc $endLoc]
#:log info $message;
:return $message;
}
:while ( true ) do={
:do {
#:log info "https://api.telegram.org/$botID/getUpdates?offset=$messageId&limit=1&allowed_updates=message&timeout=60";
:tool fetch url=("https://api.telegram.org/$botID/getUpdates?offset=$messageId&limit=1&allowed_updates=message&timeout=60") dst-path="getUpdates";
:local content [/file get [/file find name=getUpdates] contents] ;
#:log info $content;
:if ([:len $content] > 30) do={
:set messageId ([$parse content=$content variable="update_id"] + 1)
:local message [$parse content=$content variable="text" quotas=true]
:local chat [$parse content=$content variable="chat"]
:local chatId [$parse content=$chat variable="id"]
:if (($chatId = $myChatID) and ([/system script find name=$message] != "")) do={
:system script run $message;
} else={
:tool fetch url=("https://api.telegram.org/$botID/sendmessage?chat_id=$chatId&text=$mtIdentity: Unknown command: $message") keep-result=no
}
}
} on-error={}
};
เชฅเซเชกเชพ เชตเชฐเซเชทเซเชจเชพ เชเชชเชฏเซเช เชฎเชพเชเซ, เชเช เชญเซเชฒ เชฌเชนเชพเชฐ เชเชตเซ เชนเชคเซ, เชเซเช เช เชเชพเชฃเซเชฏเชพ เชเชพเชฐเชฃเซเชธเชฐ, เชจเชฌเชณเชพ เชฎเชฟเชเซเชฐเซเชเชฟเช เชเซเช เชเชพเชฐเชฃเซเชธเชฐ เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชฌเชเชง เชเชฐเซ เชเซ, เชตเชงเซ เชถเชเซเชคเชฟเชถเชพเชณเซ เชฒเซเชเซ เชชเชฐ เชคเซ เชฌเชฟเชจ-เชธเซเชเซเชช เชเชพเชฐเซเชฏ เชเชฐเซ เชเซ.
เช เชนเซเชคเซเช เชฎเชพเชเซ, เชฎเซเช เชตเซเชเชกเซเช เชเซเชฐเช เชซเซเชเชเซเชฏเซเช. เช เชนเซเช เชเชชเชฃเซ เชธเซเชเซเชฐเชฟเชชเซเชเชจเซเช เชจเชพเชฎ เชเชชเชฐ เชฆเชฐเซเชถเชพเชตเซเชฒ เชจเชพเชฎเชฎเชพเช เชฌเชฆเชฒเซเช เชเซเช. เช เชจเซ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เช เชเชคเชฐเชพเชฒเชจเซ 5 เชฎเชฟเชจเชฟเช เชชเชฐ เชธเซเช เชเชฐเซ. เชฆเชฐ 5 เชฎเชฟเชจเชฟเชเซ, เช เชฎเชพเชฐเซ "เชตเซเช เชกเซเช" เชธเซเชเซเชฐเชฟเชชเซเช เชคเชชเชพเชธเชถเซ, เช เชจเซ เชเซ เชคเซ เชเชพเชฎ เชเชฐเชคเซเช เชจเชฅเซ, เชคเซ เชคเซ เชคเซเชจเซ เชเชฒเชพเชตเชถเซ.
WatchDogT.me
:global scriptname "t.me"
:if ([:len [/system script job find script=$"scriptname"]] > 0) do={
:log info "$scriptname Already Running - killing old script before continuing"
:foreach counter in=[/system script job find script=$"scriptname"] do={
/system script job remove $counter
}
}
/system script run $scriptname
เช
เชจเซ เชกเซเชเชฐเซเช เชฎเชพเชเซ, เชธเซเชเซเชฐเชฟเชชเซเช เชฎเชฟเชเซเชฐเซเชเชฟเช เชซเซเชฐเชฎเชฎเชพเชเชฅเซ เชฒเซเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชฒเซเชเชฎเชพเชเชฅเซ เช
เชฎเชพเชฐเชพ เชเชพเชฐเซเชเชฎเชพเช เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชตเชฟเชทเชฏเซ เชฎเซเชเชฒเซ เชเซ.
เชธเซเชเซเชฐเชฟเชชเซเชเชจเซ เชถเซเชกเซเชฏเซเชฒเชฎเชพเช เชจเชพเชเซ เช เชจเซ เชฆเชฐ 5 เชฎเชฟเชจเชฟเชเซ เชชเซเชจเชเชชเซเชฐเชพเชฐเชเชญ เช เชเชคเชฐเชพเชฒเชจเซ เชเชฒเซเชฒเซเช เชเชฐเซ, BotID เช เชจเซ ChatID เชจเซ เชคเชฎเชพเชฐเชพ เชชเซเชคเชพเชจเชพเชฎเชพเช เชฌเชฆเชฒเซ.
notify-log
:global lastTime
:global output
:global mtIdentity [/system identity get name];
:global botID "botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXX" ;
:global myChatID "YYYYYY" ;
:local LogGet [ :toarray [ /log find topics~"critical" || message~"login failure" || message~"[Ff]ailure" ] ] ;
:local LogtLineCount [ :len $LogGet ] ;
if ($LogtLineCount > 0) do={
:local currentTime "$[ /log get [ :pick $LogGet ($LogtLineCount -1) ] time ]";
:if ([:len $currentTime] = 10 ) do={
:set currentTime [ :pick $currentTime 0 10 ];
}
:set output "$currentTime - $[/log get [ :pick $LogGet ($LogtLineCount-1) ] message ]";
:if (([:len $lastTime] < 1) || (([:len $lastTime] > 0) && ($lastTime != $currentTime))) do={
:set lastTime $currentTime ;
:tool fetch url=("https://api.telegram.org/$botID/sendmessage?chat_id=$myChatID&text="$mtIdentity" : $output") keep-result=no
}
}
เช เชฎเชจเซ เชชเชฐเชฟเชฃเชพเชฎ เชฎเชณเซ เชเซ:
เชธเซเชฐเซเชธ: www.habr.com