Copy & Paste Engineer

【Linux】ShellでログインしたらSlack通知を行うようにする

【Linux】ShellでログインしたらSlack通知を行うようにする

LinuxのShellでログインしたらSlack通知を行うようにする。 これをすることによって誰がログインしたかをSlack上で記録できます。

Slack の用意

以下の Slack アプリの Incoming Webhook を利用します。

Webhook URL を取得します。

Slack通知用のシェルを作る

Slack通知用のシェルを作ってみます。 ログインユーザを取得してSlackに通知するという内容です。

#!/bin/bash
set -eu

# Slack Post Json
slackPostJson()
{
    USERNAME=$(whoami)
    cat <<EOF
{
    "blocks": [
        {
            "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "*Login!!* UserName:${USERNAME}"
            }
        }
    ]
}
EOF
}
curl -i -H "Content-type: application/json" -s -S -X POST -d "$(slackPostJson)" "https://hooks.slack.com/services/XXXXXXXXXXXXXXXXXXXXXXXXXX"

実行すると通知が届きます。

sh slack.sh

Dockerで試してみる

  1. 作ったシェルをDockerにコピー
docker cp slack.sh [コンテナ名]:/etc/profile.d/slack.sh
  1. ログイン ログインします。
docker exec -it [コンテナ名] /bin/bash --login

--login を指定してログインシェルを起動します。

参考