任意のsshのログインに電報にメッセージを送る
この記事では、メッセンジャーメッセンジャーにメッセージを送信する簡単なシェルスクリプトを作成を歩いていきます.次に、このスクリプトを使用して、サーバーにSSHログインごとに通知を送信します.
クリエイト電報ボット
テレグラムグループやチャンネルにメッセージを送信するには、まず自分のボットを作成する必要があります.ちょうどオープン電報
とタイプ
クリエイトチャンネル
電報で新しいチャンネルを作成し、メンバーとしてボットを追加します.それで、あなたのロボットはメッセージをチャンネルに送ることができました.
チャンネルIDを得るために、最初に、どんなメッセージもチャンネルに掲示してください.次に、このリンクテンプレートを使用してチャネルIDを取得します.
メッセージを送るスクリプト
メッセージを送信するには、以下のコマンドを使います.
レッツクリエイトファイル
このスクリプトを実行するには
SSHログインに関する通知を送る
すべてのファイルを./etc/profileのsh拡張.D/フォルダは、bashログインシェルが入力されるたびに実行されます.
通知を送るために新しいスクリプトを加えましょう.
クリエイト電報ボット
テレグラムグループやチャンネルにメッセージを送信するには、まず自分のボットを作成する必要があります.ちょうどオープン電報
とタイプ
/start
. 次に、ボットを作成し、HTTP APIにアクセスするトークンを取得する手順に従ってください.クリエイトチャンネル
電報で新しいチャンネルを作成し、メンバーとしてボットを追加します.それで、あなたのロボットはメッセージをチャンネルに送ることができました.
チャンネルIDを得るために、最初に、どんなメッセージもチャンネルに掲示してください.次に、このリンクテンプレートを使用してチャネルIDを取得します.
https://api.telegram.org/bot<YourBOTToken>/getUpdates
以下にレスポンスの例を示します:{
"ok":true,
"result": [
{
"update_id":123,
"channel_post": {
"message_id":48,
"chat": {
"id":-123123123, // this is your channel id
"title":"Notifications",
"type":"channel"
},
"date":1574485277,
"text":"test"
}
}
]
}
メッセージを送るスクリプト
メッセージを送信するには、以下のコマンドを使います.
curl 'https://api.telegram.org/bot<YourBOTToken>/sendMessage?chat_id=<channel_id>&text=<text>'
しかし、プログラミングでは、低レベルの実装を隠すのは良い習慣です.Linux端末コマンドを作成しますtelegram-send
そして、この単純なコマンドでメッセージを送ることができました.レッツクリエイトファイル
telegram-send.sh
touch telegram-send.sh
次に、このファイルにスクリプトを追加します.グループIDとトークンをスクリプトで設定します.#!/bin/bash
GROUP_ID=<group_id>
BOT_TOKEN=<bot_token>
# this 3 checks (if) are not necessary but should be convenient
if [ "$1" == "-h" ]; then
echo "Usage: `basename $0` \"text message\""
exit 0
fi
if [ -z "$1" ]
then
echo "Add message text as second arguments"
exit 0
fi
if [ "$#" -ne 1 ]; then
echo "You can pass only one argument. For string with spaces put it on quotes"
exit 0
fi
curl -s --data "text=$1" --data "chat_id=$GROUP_ID" 'https://api.telegram.org/bot'$BOT_TOKEN'/sendMessage' > /dev/null
それはあなたのトークンをその場所に保存するのに良い習慣ではありません.また、あなたのボットは、メッセージを送信するだけでチャネルで行うことができるアクションを制限することができます.このスクリプトを実行するには
chmod +x telegram-send.sh
今テストすることができます./telegram-send.sh "Test message"
このスクリプトをどこからでも使うためにtelegram-send
代わりに./telegram-send.sh
/usr/bin/フォルダに追加しますsudo mv telegram-send.sh /usr/bin/telegram-send
/usr/binのすべてのファイルの所有者はrootユーザです.それでは、スクリプトと同じようにしましょう.sudo chown root:root /usr/bin/telegram-send
今テストすることができますtelegram-send "Test message"
SSHログインに関する通知を送る
すべてのファイルを./etc/profileのsh拡張.D/フォルダは、bashログインシェルが入力されるたびに実行されます.
通知を送るために新しいスクリプトを加えましょう.
touch login-notify.sh
スクリプトにこのコードを加えます#!/bin/bash
# prepare any message you want
login_ip="$(echo $SSH_CONNECTION | cut -d " " -f 1)"
login_date="$(date +"%e %b %Y, %a %r")"
login_name="$(whoami)"
# For new line I use $'\n' here
message="New login to server"$'\n'"$login_name"$'\n'"$login_ip"$'\n'"$login_date"
#send it to telegram
telegram-send "$message"
そして/etc/profileにこのスクリプトを動かします.フォルダ名sudo mv login-notify.sh /etc/profile.d/login-notify.sh
今すぐあなたのWebサーバーに再ログインし、それが動作チェックします.Reference
この問題について(任意のsshのログインに電報にメッセージを送る), 我々は、より多くの情報をここで見つけました https://dev.to/bogkonstantin/send-message-to-telegram-on-any-ssh-login-24c8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol