監聽/監控 主機的服務或API是否活著
緣由
由於主機內部的Golang程式,會因為不明原因Crash 服務被 kill掉
造成API連線不到,需要監聽來第一時間告知發生問題,緊急處理
可以用來監聽 API 是否是正常的 200 回應
或是 主機的服務是否正常
如果不正常可以透過Line Notify 通知之類的
錯誤訊息
1 | Failed to connect to localhost port 7777 after 75203 ms: Operation timed out |
監聽API的script
1 | !/bin/sh |
監聽Service Port的script
1 | !/bin/sh |
$? 是什麼意思?
最後一次執行的結果
This is the exit status of the last executed command.
參考網站:https://stackoverflow.com/questions/7248031/meaning-of-dollar-question-mark-in-shell-scripts
加入排程
每5分鐘監聽一次確認是否正常
1 | */5 * * * * root /check_live.sh > /dev/null |
遇到問題
排程時間到但沒有發動執行
查看Log是否有真實執行
在 Freebsd
的主機 Cron Log 位置
1 | $ vim /var/log/cron |
在 Linux
的主機 Cron Log 位置
1 | $ tail -f syslog |grep CRON |
加上可執行的權限
查了資料才知道,要 +x 才可以讓 sh 的檔案可執行
1 | $ chmod +x check_live.sh |
確認沒問題,收到推播訊息,大功告成 Ya