curlだけでSlackに通知を送る (用途: 時間のかかるコマンドの終了を伝えたい)
やりたいこと
curlコマンドだけで他のソフトウェアやコマンドをインストールせずにSlackに通知を送りたい。 シェルの&&と組み合わせてコマンドが正常終了したら、Slackに通知するを手軽に行いたい。 やりかた
$ curl -X POST -H 'Content-type: application/json' --data '{"text":"処理が終了しました!"}' YOUR_WEBHOOK_URL
YOUR_WEBHOOK_URLを適切に埋めれば良い。
"text"の内容は好きな内容に編集すればOK。
https://ワークスペース名.slack.com/apps/manage/custom-integrationsでWebhookは追加できる 実際の様子
https://gyazo.com/74c83375c7555fdf210c4c948d3eeec4
こうするとcurlの--dataを小さく保てる。
おまけ: 何度もトライして完了したら通知来るように
$ while true; do 好きなコマンド && curl -X POST -H 'Content-type: application/json' --data '{"text":"処理が終了しました!"}' $WEBHOOK_URL && break; sleep 10; done
好きなコマンドを適切に設定。
sleep 10も好きな値に設定。