Profile picture

[Shell Script] 슬랙(Slack)으로 메시지 보내기 (slack webhook)

JaehyoJJAng2024년 01월 01일

▶︎ 사전 준비

슬랙으로 알림을 자등으로 보내려면 아래와 같은 준비가 필요하다.

  • 슬랙 계정
  • 알림을 받을 슬랙 채널
  • 슬랙 웹 훅 활성화

‣ 슬랙 계정

아래 페이지로 이동하여 슬랙 회원가입을 해주도록 하자.
👉 https://slack.com/intl/ko-kr/


‣ 슬랙 채널 설정

알림을 받아볼 채널을 생성해주어야 한다.

이미 생성해둔 채널로 설정해도 되지만 서버 관리만을 목적으로 하는 채널을 따로 개설해주는게 관리하기에 편하다.

또한 알림의 경우 몇 번만 오고 끝나는게 아닌 24시간 언제든지 올 수 있기에 따로 알림용 채널을 생성해주도록 하자.


그럼 채널을 만들어보자.

좌측 채널 리스트가 있는 곳에 'Channels'라고 주기된 카테고리가 보일 것이다. '+' 버튼을 눌러 'Create a channel'을 누르고

원하는 채널명을 써서 'Create' 해주면 된다.
image


‣ 웹 훅 활성화

채널까지 다 만들어졌다면 이제 채널에 웹 훅을 활성화해야 한다.

아래 페이지로 들어가보자.
https://api.slack.com/messaging/webhooks

위 페이지로 들어가면 'Create your Slack app' 버튼이 있을텐데 그걸 클릭해서 해당 페이지로 넘어가자.

그럼 아래와 같이 'Create an app' 창이 하나 뜰텐데

'From scratch'를 선택해주자.
image


그 다음엔 앱 이름과 어느 워크스페이스에 앱을 지정할건지 선택하는 창이 하나 뜬다.
image
엡 이름은 원하는 이름으로 지어주고 워크스페이스도 원하는 스페이스을 선택해주자.


그럼 아래와 같은 페이지로 리다이렉트 될 것이다.
image


'incoming webhooks'를 클릭하고 'Activate incoming webhooks'를 활성화(On) 해주자.
image


활성화를 하고나면 웹 훅을 생성할 수 있는 버튼이 나오게 된다. [Add New Webhook to Workspace]
image


빨간 박스를 클릭하면 워크스페이스에 액세스하기 위한 권한을 요청하는 창이 하나 뜬다.

거기서 권한을 허용할 채널을 지정해주면 된다.

본인의 경우 'server_notification' 이라는 채널에 권한을 허용하도록 하겠다.
image


그럼 아래와 같이 webhook URL이 생성된다. 어딘가에 저장해놓도록 하자.
image


▶︎ Bash 스크립트 작성

이제 webhook도 생성했으니 메시지를 보내는 간단한 배쉬 스크립트를 작성해보자.

#!/usr/bin/bash

# 메시지 보낼 채널
CHANNEL="#server_notification"

# 채널에서 표시될 사용자 이름
USERNAME="Server Bot"

# 채널에 사용하고자 하는 아이콘
EMOJI=":heart:"

# 스크립트 실행 시 삽입할 파라메터
MESSAGE="$1"

# Set api url
PAYLOAD="payload={\"channel\": \"$CHANNEL\", \"username\": \"$USERNAME\", \"text\": \"$MESSAGE\", \"icon_emji\": \"$EMOJI\"}"
webHookURI="$(cat .slack.webhook.uri | awk -F '=' '{print $2}')"

# 메시지 전송
curl -X POST --data-urlencode "$PAYLOAD" "$webHookURI"

‣ 권한 부여

스크립트에 권한 부여

chmod u+x sendSlackWebhook.sh

‣ 스크립트 실행

bash sendSlackWebhook.sh Hello

image


Loading script...