Telegram gibt es für Linux auch als richtig guten CLI-Client. Tolle Spielerei. Toll für Skripte. Und wirklich brauchbar!

Für Linux gibt es für Telegram einen kompletten, gut zu nutzenden und sogar hübschen CLI-Client. Das ist nicht nur eine schöne Spielerei (das ist es!), sondern auch nützlich, da Ihr so super einfach Nachrichten, Dateien, Fotos oder Videos per Skript an Telegram senden könnt. Und eine kleine Gemeinheit für Gruppen-Chats gibt’s obendrein 🙂

Damit Ihr wisst, worauf das Ganze hinausläuft, hier mal ein Bild des Clients im Einsatz:

telegram cli client

Keine Sorge, es erscheint nur in den ersten Minuten unübersichtlich.

1. Telegram messenger CLI installieren

Nicht ganz untypisch für CLI-Programme: Die Installation ist deutlich einfacher als später der Einstieg 😉 Zunächst klont Ihr die Programmdaten von Github auf Euren Rechner und wechselt in das neue Verzeichnis „tg“:

git clone --recursive https://github.com/vysheng/tg.git && cd tg

Installiert nun allerlei Abhängigkeiten. Die folgende Zeile gilt für Debian, Ubuntu, Mint und Ubuntu-Derivate. Die Befehle für andere Systeme findet Ihr auf der Homepage.

sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev libpython-dev make 

Anschließend muss der geklonte Quellcode noch zu einem ausführbaren Programm verwurstet werden – daher die beiden üblichen Befehle:

./configure
make

Und damit ist die Installation abgeschlossen.

2. Telegram im Terminal nutzen

So schön das Tool auch ist, die Dokumentation lässt Laien nach der Installation komplett im Regen stehen und auch erfahrenere Nutzer müssen sich ein wenig umschauen. Wenn aber weiß wie es geht, ist die Nutzung erstaunlich einfach.

Zunächst müsst Ihr das Programm starten – ein sinnvoller, einfacher Befehl:

bin/telegram-cli -W -N -k tg-server.pub

Die Option -k tg-server.pub braucht Ihr immer, da sich in der Datei der öffentliche Schlüssel des Servers befindet, der für die Authentifizierung benötigt wird – muss Euch nicht weiter kümmern. Das W sorgt dafür, dass beim Start die Liste Eurer Chats geladen wird – ohne könnt Ihr Kontakte nur anschreiben, nachdem Ihr sie manuell importiert habt oder nachdem sie Euch geschrieben haben. Und ganz wichtig ist auch das N, da es jeder Nachricht eine laufende Nummer voranstellt – und die braucht Ihr, um zum Beispiel Bilder anzuschauen. Übrigens: Alle Nachrichten aller Kanäle, Gruppen oder Kontakte landen direkt im Terminal, Ihr müsst nicht wie beim grafischen Client einen Chat anwählen.

Um nun eine Nachricht zu schreiben, gebt Ihr einen Befehl dieser Art ein:

msg MeineGruppe Hallo Doofmann!

Nach msg könnt Ihr mittels TAB alle Kontakte einblenden lassen beziehungsweise deren erste Buchstaben eingeben und vervollständigen lassen (dank der W-Option). Tipp: Über die Pfeil-nach-oben-Taste könnt Ihr auf alte Eingaben zurückgreifen.

Das Versenden von Fotos funktioniert fast genauso:

send_photo MeineGruppe doofmann.jpg

Das dürfte soweit selbsterklärend sein – im Gegensatz zum Anzeigen eines Fotos:

view_photo 22

Der Befehlt view_photo benötigt die Nummer der Nachricht, eben jene Nummer, die Ihr über die Option -N aktiviert habt. Die Nummer sind Session-abhängig. Wenn Ihr dauerhafte Nummer wollt, könnt Ihr das über die zusätzliche Option –permanent-msg-ids erreichen. Fotos, Videos und andere Dateien werden in den Downloads-Ordner geladen und dann mit dem jeweiligen Standardprogramm lokal geöffnet.

telegram cli client

Auch Bilder können – extern – angezeigt werden.

Noch ein paar Beispiele für Befehle:

chat_info MeineGruppe 
user_info Peter
quit

Alle Befehle findet Ihr wieder auf der Github-Projektseite, alle Startoptionen wie üblich über telegram-cli –help. Da Ihr nun das Grundprinzip kennt, solltet Ihr mit der Befehlsreferenz klarkommen.

3. Telegram per Skript nutzen

Um Telegram-Nachrichten per Skript zu schicken, müsst Ihr an dem Startbefehl gar nicht viel ändern. Erstmal ein Beispiel:

bin/telegram-cli -W -N -k tg-server.pub -e "send_text Peter meintext.txt"

Die neue Option e sagt: Befehle ausführen und dann beenden. Und der Befehl in den Anführungszeichen sollte Euch keine Rätsel aufgeben, es wird schlicht der Text aus der Datei „meintext.txt“ als Nachricht an Peter geschickt. Wohlgemerkt der Inhalt der Datei, nicht die Datei selbst! Statt einer Textdatei könnt Ihr natürlich auch eine Variable der Art $a verwenden.

Wer es sofort probieren will und keine Angst vor schlechtem Code hat, hier ein Skript, das minütlich die aktuelle CPU-Auslastung sowie die Namen aller am Rechner angemeldeten Nutzer an Peter schickt:

while true
do
echo CPU-Auslastung: > cpuusage_data &&
mpstat 2 1 | awk '$12 ~ /[0-9.]+/ { print 100 - $12"%" }' >> cpuusage_data &&
echo Benutzer: >> cpuusage_data &&
users >> cpuusage_data &&
bin/telegram-cli -W -N -k tg-server.pub -e "send_text Peter cpuusage_data" &
sleep 60
done

Das Gerüst bildet eine While-Endlos-Schleife (while true ist einfach immer wahr …), die beiden echo-Zeilen fügen einfach Text in die (anfangs leere) Datei cpuusage_data hinzu und der telegram-cli-Befehl schickt die Nachricht an Peter, bevor 60 Sekunden geschlafen wird. Die eigentlichen Inhalte kommen von mpstat und users. Bei mpstat wird 2 Sekunden lang gemessen und 1 Bericht erstellt. Die awk-Anweisung zieht dann einfach die relevanten Daten heraus, hier die aktuelle CPU-Auslastung in Prozent.

telegram cli client

Der Client eignet sich super für’s Scripting!

Nun wollt Ihr sicherlich nicht minütlich über derart statischen Kram benachrichtigt werden. Aber stellt Euch vor, die Nachrichten auf interessante Vorkommnisse zu beschränken, etwa die Anwesenheit eines speziellen Nutzers oder extrem hohe CPU-Auslastung. Ihr könnt mit Telegram durchaus ein kleines Monitoring-System aufbauen.

Die kleine Gemeinheit, die wir Euch versprochen haben: In Gruppen seht Ihr im grafischen Telegram-Client, wenn Eure Nachricht gelesen/gesehen wurde – aber nicht von wem. Im Terminal seht Ihr sehr wohl, welches Gruppenmitglied den „Gesehen“-Status ausgelöst hat.

Vielleicht interessiert Euch auch unsere Anleitung zum Erstellen eigener Telegram-Bots. Oder eher der Titten-und-Katzen-Artikel?? Und wir haben noch einige mehr.

Über den Autor

Mirco Lang

Mirco Lang

Freier Journalist, Exil-Sauerländer, (ziemlich alter) Skateboarder, Dipl.-Inf.-Wirt, Einzelhandelskaufmann, Open-Source-Nerd, Stichwortschreiber. Ex-Saturn'ler, Ex-Data-Becker'ler, Ex-BSI'ler.

Computer-Erstkontakt: ca. 1982 - der C64 des großen Bruders eines Freunds.

Wenn ich Dir helfen konnte und/oder Du hier mehr über Open Source, Linux, Bastelkram oder auch Windows-Basics lesen möchtest:
Spendier mir einen Kaffee via Paypal.

Kommentieren:

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich stimme zu.