Benachrichtigung über Linux-Updates via Telegram

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.

hi… erstmal vielen danke für deine Tutorials… jetzt zu meinen 2 Problemen :smiley:

  1. bei der ausführung des Scriptes kommt folgende meldung:
    „WARNING: apt does not have a stable CLI interface. Use with caution in scripts.“

hier liegt es so wie ich rausfinden konnte an dem befehl apt da dieser einen grafischen balken ausgeben kann. Hier wird ehr zu apt-get geraten.

  1. in deiner anleitung gibt es eine discrepanz da wir eine Datei „telegram_update.sh“ erzeugen und im nächsten schritt „update_sshalert.sh“ aufrufen o.O

naja Zeile angepasst und nun feuer frei … dachte ich aber dann kommt einfach nichts an ??? hier weiß ich aber leider nicht wo das Problem ist :frowning: