シェルスクリプト

メール通知スクリプト【bashからSMTPで通知を送る方法】

シェルスクリプト
記事内に広告が含まれています。

シェルスクリプトからメールやSlackに通知を送る方法を解説します。監視スクリプトと組み合わせると障害を即座に検知できます。

mailコマンドでメールを送る

sudo apt install -y mailutils
echo "本文" | mail -s "件名" recipient@example.com
mail -s "レポート" recipient@example.com < report.txt

Slack 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関数として共通化するとスクリプト全体で再利用できる

コメント

タイトルとURLをコピーしました