用 Telegram 即時通知 Linux 各式警告
因公司所有機器都是自建,難免會有故障發生,在故障發生之前可以用 cron 定時監測機器各項數據,減少各項服務中止的情事發生。 𢪙 google 大神,以下為實做案例。
首先先在 Telegram 的 BotFather 創一個 bot 機器人
這時畫面中我們會拿到一組 HTTP API 請先復製起來,接著去左上搜尋我們剛建好的bot名字,
並隨便打個字上去
例如,讓他每天幫我們檢測硬碟是不是好的
vim chk-disk.sh
=====================================================
#!/bin/bash
TOKEN=61947xxxxx:xxxxxxxxxxxxxxxxxxxxWOd_LxbJy1oxG-M
CHAT_ID=1013xxxxxx
URL="https://api.telegram.org/bot$TOKEN/sendMessage"
IP="$(hostname -I)"
NOW=$(date +"%e %b %Y, %a %r")
a=PASSED
b=$(smartctl -a /dev/sda2 |grep result: |awk {'print $6'})
if [ "$a" = "$b" ]; then
MESSAGE="ALERT - '$IP' '$HOSTNAME' on '$NOW' HDD is not Good!"
curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE"
fi
chmod +x chk-disk.sh
驗証ok
備註:
1. 因為測試的關系,所以把 「if [ "$a" = "$b" ]; then」這行改成等於,實際使用要改為
「if [ "$a" != "$b" ]; then」。
2. 要使用 smartctl 這個指令,請先安裝 smartmontools 這個套件
#Ubuntu
sudo apt install smartmontools
#Centos
yum install smartmontools
又是愉快的一天!


留言
張貼留言