Most-popular-Telegram-bots.jpg

本文隶属于 实用工具 /网站优化 分类,点击分类名称可以查看更多相关文章;

I. 主理人说

CPU-check-telegram-alert.jpg
1.拿来即可用的 Telegram Bot Api(免费)(API是什么?);
2.如果你也有博客或需要监测服务器性能;
3.这或许是个好办法;
4.当服务器CPU触到阈值,则触发警报;
5.真的不要太好用。

*本文末尾提供了网站联通状态检查脚本;

II. 本文概要

1.创建TG机器人并获取[API Token];
2.给机器人发送消息,并获取你电报账号的[chatID];
3.配置CPU监测及报警通知脚本
4.使用crontab设置定时任务;

III. CPU负载检测脚本

##CPU负载计算
function GetSysCPU 
 {
   CpuIdle=`vmstat 1 5 |sed -n '3,$p' | awk '{x = x + $15} END {print x/5}' | awk -F. '{print $1}'` 
   CpuNum=`echo "100-$CpuIdle" | bc` 
   echo $CpuNum 
 }
   cpucheck=`GetSysCPU` #将结果输出赋值到cpucheck

*暂忘脚本出处

IV. 简易报警脚本

配合Telegram Bot Api 食用,效果佳。

##CPU负载计算
function GetSysCPU 
{
CpuIdle=`vmstat 1 5 |sed -n '3,$p' | awk '{x = x + $15} END {print x/5}' | awk -F. '{print $1}'` 
CpuNum=`echo "100-$CpuIdle" | bc` 
echo $CpuNum 
}

cpucheck=`GetSysCPU` #将结果输出赋值到cpucheck
cpumax=50 #CPU触警阈值

if [ ${cpucheck} -gt $max ]; #阈值与实际CPU值进行对比
then
date=$(env LANG=en_US.UTF-8 date "+%e/%b/%Y/%R") #当前时间赋值
curl -X POST "https://api.telegram.org/bot[API Token]/sendMessage?chat_id=[chatID]&text=$date%0aCPU负载为$cpucheck%%0a注意及时检查%0a如果该警报持续...%0a或联系管理员%[email protected]"
else
date=$(env LANG=en_US.UTF-8 date "+%e/%b/%Y/%R")
echo "${date}" "CPU负载正常,当前负载为$cpucheck%..." >> /home/cpucheck.log #监测坚果输出到本地以便后期查阅..
fi

以上。

实操部分

V. 第一步 创建机器人


*看创建机器人部分即可,仅需三步即可创建一个新机器人;

VI. 第二步 获取API Token

同上,创建完机器人即可获得API Token

VII. 第二步 获取chatID

1.官方提供了接口
2.通过第二步我们已经获得了API Token
2.将下方API Token替换成自己的API Token

https://api.telegram.org/bot[API Token]/getUpdates #将[API Token]替换成自己的API token,

实例说明

https://api.telegram.org/bot10440392893:AQMZqM-FX_SGVVMtUj98xXWWqWCO2IbGHSw/getUpdates

3.替换成自己的[API token]后,在浏览器中打开链接,提示{"ok":true,...
4.给机器人发送任意英文字符,例如Hello word;
5.刷新刚刚在浏览器打开的链接,并找到Hello word

举例说明,发送Hello word后刷新链接得到;

"message":{"message_id":1426,"from":{"id":763456868,"is_bot":false,"first_name":"\u2708\ufe0f TG \u6bd2\u5976\u535a\u4e3b \u2708\ufe0f","last_name":"\u4e3b\u7406\u4eba Julia \ud83c\udd65","username":"limbopro","language_code":"zh-hans"},
"chat":{"id":763456868,"first_name":"\u2708\ufe0f TG \u6bd2\u5976\u535a\u4e3b \u2708\ufe0f","last_name":"\u4e3b\u7406\u4eba Julia \ud83c\udd65","username":"limbopro","type":"private"},"date":1576931731,"text":"Hello word"}}]}

其中,"chat":{"id":763456868 里的763456868,我的Chat id;若需获取群组的Chat ID,需把机器人添加至群组,在群组内发送/hello word @xxx_bot(@xxx_bot为你的机器人) 即可;

VIII. 第三步 机器人发送消息

1.通过上面两步,我们有了机器人以及[API Token] 以及收件人的[ChatID];

https://api.telegram.org/bot[API Token]/sendMessage?chat_id=[chatID]&text=hello word

1.这个是TG bot sendMessage API,简单却实用;
2.你可以替换自己的[API]与[chatID];
3.正确替换后,在浏览器中打开,你将收到一条消息;
4.&text=后面接你需要发的信息;
5.换行用%0a表示;

1
2
3

则需表示成 &text=1%0a2%0a3

以上。

IX. 第四步 设置定时执行脚本任务

1.Crontab的使用可参考Linux crontab 命令

[email protected]:/home#  crontab -e
* * * * * /home/checkcpu.sh #每分钟执行一次检测

X. 其他

获取网站状态脚本命令

curl -I -m 10 -o /dev/null -s -w %{http_code} https://limbopro.xyz

XI. 附注

1.Telegram Bot API - Telegram APIs #官方
2.Bot Code Examples - Telegram APIs #官方样例
3.https://github.com/python-telegram-bot/python-telegram-bot (拿来即用
4.https://github.com/tg-bot-api/bot-api-base

XII. 联系主理人

1.关注频道 https://t.me/limboprossr 不失联;
2.毒奶粉们(我管我的Fans)可联系 TG机器人 或发送 邮件 获取帮助;

3.或点击本页面右下角的聊天按钮联系;

最后修改:2020 年 01 月 04 日 12 : 21 AM