解決

メイン処理

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%%\.*})"