In diesem Tutorial möchte ich dir zeigen, wie man sich über verfügbare Updates auf einem Linux-Server (Debian) via Telegram benachrichtigen lassen kann.
Telegram-Bot erstellen
Zunächst benötigen wir einen Telegram-Bot. Dazu öffnen wir Telegram und schreiben „BotFahther“ (@BotFather) folgende Nachricht:
/newbot
Im folgenden fragt er nach einem Namen für deinen Bot. Antworte mit dem gewünschten Namen.
Als nächstes wirst du nach dem Benutzernamen für deinen Bot gefragt. Dieser muss das Wort Bot am Ende haben. Bspw.:
meinBot
mein_bot
Schicke dem BotFather deinen gewünschten Benutzernamen ebenfalls als Antwort zu.
Damit ist der Telegram-Bot erstellt. Dir wird noch ein Token genannt, den du dir unbedingt notieren und sicher aufbewahren solltest. Denn mit diesem kann man den Bot kontrollieren.
Chat-ID für den Bot Herausfinden
Um eine Nachricht zu verschicken ist neben dem Token noch die Chat-ID notwendig. Um diese zu erlangen schreibe deinem neuen Bot zunächst folgende Nachricht:
/start
Danach schicke einer weitere Nachricht mit einem Text deiner Wahl. Um nun an die Chat-ID zu gelangen, gibt es zwei Wege.
Browser
https://api.telegram.org/botDEIN-TOKEN/getUpdates
Im Terminal
curl -X POST https://api.telegram.org/botDEIN-TOKEN/getUpdates
DEIN-TOKEN musst du durch den Token ersetzen, der dir bei der Erstellung des Bot mitgeteilt wurde. Die gewünschte Chat-ID ermittelst du nun wie folgt.
Ausgabe im Browser
result | |
---|---|
0 | |
update_id | 123456 |
message | |
message_id | 123 |
from | |
id | CHAT-ID |
is_bot | false |
first_name | Mustername |
language_code | de |
chat | |
id | CHAT-ID |
first_name | Mustername |
type | private |
date | 123 |
text | Nachrichtentext |
Ausgabe im Terminal
{„ok“:true,„result“:[{„update_id“:123456,
„message“:{„message_id“:123,„from“:{„id“:CHAT-ID,„is_bot“:false,„first_name“:„Mustername“,„language_code“:„de“},„chat“:{„id“:CHAT-ID,„first_name“:„Mustername“,„type“:„private“},„date“:123,„text“:„Nachrichtentext“}}]}
Notiere dir die Chat-ID.
Script erstellen
Logge dich auf den gewünschten Server ein. Zunächst erstellen wir einen Ordner:
sudo mkdir /opt/scripts
Nun erstellen wir eine Datei:
sudo nano /opt/scripts/telegram_update.sh
Dort folgendes einfügen:
#!/bin/sh
URL="https://api.telegram.org/botDEIN-TOKEN/sendMessage"
UPDATE=$(apt update | tail -n 1)
HOSTNAME=$(hostname -f)
TEXT="Updates für ($HOSTNAME): $UPDATE"
curl -s -m 10 -d "chat_id=CHAT-ID&disable_web_page_preview=1&text=$TEXT" $URL > /dev/null
DEIN-TOKEN mit deinem persönlichen Token ersetzen und CHAT-ID mir deiner Chat-ID ersetzen.
Nun speichern wir das Script, in dem wir STRG + X drücken und beantworten die Frage mit J bzw. Y.
Als nächstes machen wir das Script mittels
chmod +x /opt/scripts/telegram_update.sh
ausführbar. Zum Testen geben wir nun folgendes ins Terminal ein:
/opt/scripts/update_sshalert.sh
Wenn erfolgeich eine Nachricht versendet wurd, können wir folgenden Befehl eingeben:
crontab -e
und folgendes eintragen, damit das Script jeden Tag um Mitternacht ausgeführt wird:
0 0 * * * /opt/scripts/telegram_update.sh
Wieder mit STRG + X schließen und Änderungen speichern.
Das wars auch schon. Ab diesem Zeitpunkt bekommt ihr jeden Tag eine Benachrichtigung.