実行するだけでSlackにメッセージを送れるスクリプト・コマンドを作ってみます。
LINE Notifyが終了してしまうので、今回はその対策です。
手順1 SlackにIncoming Webhookを導入する
まずはSlack側での下準備です。APIからメッセージを送れるようにしておきます。
SlackのWebhook URL取得手順 #Slack – Qiita
SlackのWebhook URL取得手順 - Qiita
SlackのWebhook URLを取得するまでの手順を示す。最終的にやりたいことChatにWebサービスの結果を通知するChatOps的なことをしたい。通知先のChatツールとしてSlack…
上記サイトの通りやればOKです。1分でできます♪
Webhook URLは以降で使うので、コピーしておきましょう。
手順2 Slackにメッセージを送るスクリプトをつくる
Slackにメッセージを送るスクリプトを作ります。
第1引数にメッセージ本文を指定できるようにします。
今回は自動的に日時と送信元マシンのホスト名もメッセージに含めるようにしました。
#!/bin/bash
# Webhook URL を設定(必要に応じて変更してください)
WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXX"
# 引数チェック
if [ -z "$1" ]; then
echo "メッセージ本文を第1引数に指定してください。"
exit 1
fi
# ホスト名を取得
HOSTNAME=$(hostname)
# 現在日時を取得(日本時間)
DATETIME=$(date '+%Y年%m月%d日(%a) %H:%M:%S')
# メッセージ本文を構築
MESSAGE="[$HOSTNAMEから送信]\n$1\n$DATETIME"
# Slack に送信するJSONデータを構築
PAYLOAD=$(cat <<EOF
{
"text": "$MESSAGE"
}
EOF
)
# curl で Slack に送信(レスポンスを抑制)
curl -s -X POST -H 'Content-type: application/json' --data "$PAYLOAD" "$WEBHOOK_URL" > /dev/null
”送信日時やホスト名はいらない”という方は以下のようにしましょう。
#!/bin/bash
# Webhook URL を設定(必要に応じて変更してください)
WEBHOOK_URL="https://hooks.slack.com/services/XXXXXXXXX/XXXXXXXXX/XXXXXXXXXXXXXXXXXXXX"
# 引数チェック
if [ -z "$1" ]; then
echo "メッセージ本文を第1引数に指定してください。"
exit 1
fi
# メッセージ本文を構築
MESSAGE="$1"
# Slack に送信するJSONデータを構築
PAYLOAD=$(cat <<EOF
{
"text": "$MESSAGE"
}
EOF
)
# curl で Slack に送信(レスポンスを抑制)
curl -s -X POST -H 'Content-type: application/json' --data "$PAYLOAD" "$WEBHOOK_URL" > /dev/null
スクリプトを実行すると、以下のようにメッセージが送信されます。
いい感じです♪
手順3 コマンド化する
コマンドとしてシェルから実行できるようにします。
作成したスクリプトを/usr/local/binに移動し、好きな名前にリネームしましょう。
sudo mv send_slack_message.sh /usr/local/bin/sendslack
これでsendslackコマンドを実行すると、Slackが送信されるようになりました。
コメント