シェルスクリプトからメールやSlackに通知を送る方法を解説します。監視スクリプトと組み合わせると障害を即座に検知できます。
mailコマンドでメールを送る
sudo apt install -y mailutils
echo "本文" | mail -s "件名" recipient@example.com
mail -s "レポート" recipient@example.com < report.txtSlack Webhookで通知する
#!/bin/bash
WEBHOOK_URL="https://hooks.slack.com/services/xxx/yyy/zzz"
send_slack() {
curl -s -X POST -H "Content-type: application/json" \
--data "{"text":"$1"}" "$WEBHOOK_URL"
}
send_slack "バックアップが完了しました"
send_slack "エラー: サーバー応答なし"通知を共通関数化する
notify() {
local subject="$1" body="$2"
echo "$body" | mail -s "$subject" admin@example.com
curl -s -X POST -H "Content-type: application/json" \
--data "{"text":"[$subject] $body"}" "$WEBHOOK_URL"
}
notify "完了" "$(date): バックアップ正常終了"まとめ
- mailコマンドでコマンドラインからメール送信できる
- Slack WebhookとcurlでSlackへ手軽に通知できる
- notify関数として共通化するとスクリプト全体で再利用できる



コメント