【AWS】 cron 실행 결과를 Slack에 통지
cron을 사용하여 shell 파일을 자동으로 실행하도록했습니다.
그런 다음 Slack의 IncomingWebhooks를 사용하여 Bot이 자동으로 중얼거리는 것을 시도했습니다.
Slack Incoming Webhook 등록
우선 Slack의 Incoming Webhook을 준비합니다.
Slack 설정에서 その他管理項目
에서 App管理
를 선택하십시오.
브라우저가 열리고 관리 화면이 나오므로 검색창에서 Incoming
를 입력하면 맨 위에 Incoming Webhook
Incoming Webhook 앱 세부정보 화면에서 Slackに追加
를 선택합니다.
봇이 중얼거리는 채널을 선택하고 Incoming Webhookインテグレーションの追加
추가하면 Webhook URL
라는 것이 생성됩니다.
이 URL에 http 액세스 한 것을 트리거에 Bot가 중얼거리는 구조가 되어 있습니다
Slack 연합 Shell 파일 만들기
다음으로 Slack에 http 액세스를 날리는 Shell을 준비합니다.
기본적으로 copipe로 좋다고 생각합니다.
아래 3개만 자신의 정보로 다시 작성해 주세요.
다음으로 Slack에 http 액세스를 날리는 Shell을 준비합니다.
기본적으로 copipe로 좋다고 생각합니다.
아래 3개만 자신의 정보로 다시 작성해 주세요.
webhook.sh
#!/bin/sh
set -eu
#Incoming WebHooksのURL
WEBHOOKURL="生成したWebhook URL"
#メッセージを保存する一時ファイル
MESSAGEFILE=$(mktemp -t webhooksXXXX)
trap "
rm ${MESSAGEFILE}
" 0
usage_exit() {
echo "Usage: $0 [-m message] [-c channel] [-i icon] [-n botname]" 1>&2
exit 0
}
while getopts c:i:n:m: opts
do
case $opts in
c)
CHANNEL=$OPTARG
;;
i)
FACEICON=$OPTARG
;;
n)
BOTNAME=$OPTARG
;;
m)
MESSAGE=$OPTARG"\n"
;;
\?)
usage_exit
;;
esac
done
#slack 送信チャンネル
CHANNEL=${CHANNEL:-"#送信するチャンネル名"}
#slack 送信名
BOTNAME=${BOTNAME:-"送信するBotの名前"}
if [ -p /dev/stdin ] ; then
#改行コードをslack用に変換
cat - | tr '\n' '\\' | sed 's/\\/\\n/g' > ${MESSAGEFILE}
else
echo "nothing stdin"
exit 1
fi
WEBMESSAGE='```'`cat ${MESSAGEFILE}`'```'
#Incoming WebHooks送信
curl -s -S -X POST --data-urlencode "payload={\"channel\": \"${CHANNEL}\", \"username\": \"${BOTNAME}\", \"text\": \"${WEBMESSAGE}\" }" ${WEBHOOKURL} >/dev/null
이 파일을 원하는 곳에 만들자.
이번에는
/etc/webhook.sh
에 작성했습니다.기본적으로 파이프로 전달할 수 있는 것은 모두 출력할 수 있어야 합니다.
아래 명령으로 동작을 확인합시다.
$ sudo echo test | /etc/webhooks.sh
cron 등록
cron 등록은 간단합니다./etc
로 이동하여 cron
설정을 엽니다.
$ cd /etc
$ sudo crontab -e
cron 설정이 열리면 모든 처리를 작성하십시오.
이번에는 매시간 vmstatコマンド
를 실행하고 싶으므로 아래와 같이 기입하고 :wq
0 * * * * vmstat | /etc/webhooks.sh
다음 명령을 실행하여 등록이 완료되었는지 확인할 수 있습니다.
$ sudo crontab -l
Reference
이 문제에 관하여(【AWS】 cron 실행 결과를 Slack에 통지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/risto24/items/e033503000d60445ac9a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ cd /etc
$ sudo crontab -e
0 * * * * vmstat | /etc/webhooks.sh
$ sudo crontab -l
Reference
이 문제에 관하여(【AWS】 cron 실행 결과를 Slack에 통지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/risto24/items/e033503000d60445ac9a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)