前陣子 EC2 掛了一台
查了一下資料
發現有蠻方便的監控方式,來源網址:Shell Script 監測硬碟使用量

#!/bin/bash
 
echo "== Ubuntu == run check-disk =="
team_url=【你 team 的 url】
alert=50
 
df -H | grep -vE '^Filesystem|tmpfs' | awk '{ print $5 " " $6 }' | while read output;
do
        usepercent=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
        partition=$(echo $output | awk '{ print $2 }' )
        if [ $usepercent -ge $alert ]; then
   if [ $partition = '/' ]; then
    curl -H "Content-Type: application/json" -d "{\"text\":\"$(date) $(hostname) Disk Space Alert= $partition($usepercent%) \"}" $team_url
    break
   fi
        fi
done
echo "== Ubuntu == stop check-disk =="

如果沒安裝 curl 請安裝(Shell Script 需要 curl 才能跟 team 溝通)
參考網址:How to add connectors in Microsoft Teams
安裝方法如下:

sudo apt-get update
sudo apt install curl

記得找一下 team 頻道的 Webhook url 取代上面的【你 team 的 url】
參考網址:Microsoft Teams 使用Webhook傳訊息到Teams頻道
方法如下:

Alt text

點擊「連接器」

Alt text

點擊「已設定」與「管理」(如果沒安裝「傳入 Webhook」請安裝)

Alt text

按下「複製」鈕就能取得網址

如果想每天定時監控與通知
可以利用 crontab 定時通知
記得給 check-disk.sh 管理權限(有權限 ls 看到會是綠色的)

chmod +x check-disk.sh

每天半夜 12 點定時通知

0 0 * * * /home/ubuntu/check-disk.sh >> ~/disk.log

每小時定時通知

0 * * * * /home/ubuntu/check-disk.sh >> ~/disk.log

這邊建議設定一下時區

sudo timedatectl set-timezone "Asia/Taipei"

crontab 設定的啟動時間才會準確

現在可以另用 crontab -e 新增排程了

排程設定好了
記得執行

sudo service cron restart

重置一下 crontab