bashでslackに通知
解決
メイン処理
Shell/Bash script for sending slack messages. を使用する。
マッピング
#!/bin/bash
export APP_SLACK_WEBHOOK="https://hooks.slack.com/services/XXXX"
export APP_SLACK_CHANNEL=channel_name
#export APP_SLACK_USERNAME=$(hostname)
export APP_SLACK_ICON_EMOJI=":hoge:"
/usr/bin/slack "[$(hostname)] $(cat -)"
使い方
/path/to/shell.sh 2>&1 | /usr/local/bin/crontab-slack
結果
[163-44-175-179] test
な感じで送信される。
note
どっかで使っていたスクリプト
# incoming-webhookのURLに対して通知内容を送ります。
readonly USERNAME="username"
readonly ICON_EMOJI=":favorite_icon:"
usage_exit() {
echo "Usage: $(basename $0) -c CHANNEL [-f FROM] [-C COLOR] [-L LEVEL] [-S]MESSAGE" 1>&2
echo " OPTIONS:" 1>&2
echo " -S: suppress script name" 1>&2
exit 1
}
function post() {
local _channel="${1}"
shift
local _color="${1}"
shift
local _displayname="${1}"
shift
local _level="${1}"
shift
local _msg="${@}"
local _retry_args="--retry 3 --retry-delay 2 --retry-max-time 10"
curl -X POST --data-urlencode "payload={\"channel\": \"${_channel}\", \"username\": \"${USERNAME}\", \"icon_emoji\": \"${ICON_EMOJI}\", \"attachments\": [{ \"color\": \"${_color}\", \"title\": \"${_level}\", \"text\": \"${_msg}\" }] }" ${webhook_url} 2>/dev/null
}
#
# MAIN
#
CALLED_FROM="$(ps -o command= $(ps -o ppid= $$))"
CHANNEL="devnull"
SUPPRESS_SCRIPTNAME=0
LEVEL="INFO"
## set default display name with Hipchat compatible
if [[ "${SLACK_DISPLAY_NAME:-null}" != "null" ]]; then
FROM="${SLACK_DISPLAY_NAME} (${HOSTNAME%%\.*})"