Ausgabe steuern¶
Wenn eine Schaltfläche fertig ist, muss der Bot das
Ergebnis in Ihren Chat bringen. Telegram nimmt niemals mehr als 4096 Bytes in
einer Nachricht an. Ein langes Ergebnis kommt deshalb entweder als mehrere
Antwortnachrichten oder als eine .txt-Datei, die Sie öffnen und
herunterladen können.
Drei optionale Felder entscheiden, was geschieht. Sie können alle drei weglassen, und der Bot verhält sich trotzdem sinnvoll.
Die eine Regel, die Sie sich merken sollten
Die Schaltfläche gewinnt. Setzt eine Schaltfläche output, dann gilt das.
Sagt die Schaltfläche nichts, gilt der Root-Wert. Sagt auch Root nichts,
verwendet der Bot auto.
-
max_output_bytes
Wie viel Ausgabe vom Befehl behalten wird, bevor überhaupt etwas gesendet wird.
-
output
Nachrichten oder Datei. Das einzige Feld, das Sie auch an einer Schaltfläche setzen können.
-
max_output_messages
Im Modus
auto: wie viele Nachrichten erlaubt sind, bevor eine Datei gesendet wird.
Jedes Bild auf dieser Seite lässt sich öffnen
Die Chatbilder sind absichtlich klein. Klicken Sie eines an, um es in voller Größe zu sehen.
Die drei Felder im Überblick¶
| Feld | Wo Sie es setzen | Typ | Standard | Was es entscheidet |
|---|---|---|---|---|
max_output_bytes |
nur Root | Ganzzahl | 524288 |
Wie viele Bytes Ausgabe der Bot pro Befehl behält |
output |
Root und Schaltfläche | auto | text | file |
auto |
Ob das Ergebnis als Chatnachrichten oder als eine .txt-Datei ankommt |
max_output_messages |
nur Root | Ganzzahl, 1–10 |
2 |
Im Modus auto: die Anzahl der erlaubten Nachrichten, bevor stattdessen eine Datei gesendet wird |
Alle drei stehen in Ihrer Konfigurationsdatei auf
der obersten Ebene, neben shell und timeout, nicht unter telegram.
Die vollständige Liste der Schlüssel auf oberster Ebene finden Sie auf der
Seite Konfiguration.
max_output_bytes¶
Dies ist Ihr eigenes Limit, und es kommt zuerst. Während ein Befehl läuft,
behält der Bot höchstens so viele Bytes seiner Ausgabe, getrennt gezählt für
normale Ausgabe und Fehlerausgabe. Alles darüber wird verworfen, der Befehl
selbst läuft aber weiter, bis er endet oder sein timeout erreicht.
Bis zu 2 MB Ausgabe pro Befehl behalten
- 2 MB statt der standardmäßigen 512 KB. Wird für normale Ausgabe und für Fehlerausgabe getrennt gezählt.
Was Sie im Chat erhalten
Ein höherer Wert hilft nur, wenn eine Datei gesendet wird
Eine Chatnachricht kann niemals mehr als 4096 Bytes tragen. Ein größeres
max_output_bytes erreicht Sie deshalb nur vollständig, wenn das Ergebnis
als .txt-Datei ankommt. Kombinieren Sie es mit output: auto (dem
Standard) oder mit output: file.
output¶
output wählt die Zustellung. Es nimmt drei Werte an und ist das einzige
Ausgabefeld, das Sie auch an eine einzelne Schaltfläche schreiben können.
Textnachrichten, solange das Ergebnis kurz ist, und eine .txt-Datei,
wenn nicht. Das ist der Standard und der Wert, der gilt, wenn Sie nichts
schreiben.
Immer Chatnachrichten, wie lang das Ergebnis auch ist. Der Bot stoppt nach zehn Nachrichten und ergänzt einen Hinweis, dass der Rest abgeschnitten wurde.
Immer eine .txt-Datei, selbst bei einem einzeiligen Ergebnis. Die
Zusammenfassung kommt als Beschriftung der Datei mit.
Weglassen ist dasselbe wie auto zu schreiben
Sie müssen output nie schreiben. Eine Konfiguration, die schon vor
diesem Feld funktioniert hat, verhält sich genau wie vorher.
max_output_messages¶
Dieses Feld ist nur im Modus auto relevant, und es gibt es nur auf oberster
Ebene. Es ist die Anzahl der Chatnachrichten, die der Bot senden will, bevor
er Nachrichten aufgibt und stattdessen eine Datei sendet. Erlaubt sind 1 bis
10; der Standardwert ist 2.
Eine Datei senden, sobald das Ergebnis eine zweite Nachricht braucht
- Die strengste Einstellung. Nur ein Ergebnis, das in eine Nachricht passt, bleibt im Chat.
Was Sie im Chat erhalten
Das Feld gibt es nur auf oberster Ebene
Eine Schaltfläche kann max_output_messages nicht setzen. Setzen Sie es
auf oberster Ebene und lassen Sie Schaltflächen, die etwas anderes
brauchen, output: text oder output: file setzen.
Root und Schaltfläche zusammen¶
Eine Schaltfläche darf ihr eigenes output tragen. Sonst lässt sich nichts
zur Ausgabe pro Schaltfläche einstellen. Der wirksame Modus ergibt sich
einfach so:
Root output |
output der Schaltfläche |
Was tatsächlich passiert |
|---|---|---|
nicht gesetzt oder auto |
nicht gesetzt | auto |
nicht gesetzt oder auto |
auto |
auto |
nicht gesetzt oder auto |
text |
text |
nicht gesetzt oder auto |
file |
file |
text |
nicht gesetzt | text |
text |
auto |
auto |
text |
text |
text |
text |
file |
file |
file |
nicht gesetzt | file |
file |
auto |
auto |
file |
text |
text |
file |
file |
file |
Die folgenden Abschnitte gehen alle zwölf Kombinationen durch, mit je einem Beispiel.
Wenn Root auto ist¶
Dazu gehört auch der Fall, dass Root gar nichts sagt, denn ein fehlendes
output bedeutet auto.
Root ist auto, die Schaltfläche sagt nichts¶
Der Alltagsfall. Kurze Ergebnisse bleiben im Chat; ein Ergebnis, das mehr als
max_output_messages Nachrichten bräuchte, kommt als Datei.
Eine einfache Schaltfläche unter einem einfachen Root
Was Sie im Chat erhalten
Root ist auto, die Schaltfläche sagt auto¶
auto an der Schaltfläche zu schreiben ändert hier nichts. Es lohnt sich nur,
wenn die Schaltfläche in auto bleiben soll, egal was aus Root später wird.
Den Standard an der Schaltfläche ausschreiben
output: auto
menu:
- name: Disk usage
type: button
function: command
command: "df -h"
output: auto # (1)!
- Heute dasselbe Verhalten wie ohne die Zeile, aber diese Schaltfläche
behält es auch, wenn Root später auf
textoderfilewechselt.
Was Sie im Chat erhalten
Root ist auto, die Schaltfläche sagt text¶
Verwenden Sie das für eine Schaltfläche, deren Ausgabe Sie immer direkt im Chat lesen wollen, auch wenn sie etwas länger wird — eine Statusliste, durch die Sie scrollen, statt sie herunterzuladen.
Eine Schaltfläche im Chat behalten
output: auto
menu:
- name: Service status
type: button
function: command
command: "systemctl status nginx --no-pager"
output: text # (1)!
- Nie eine Datei, egal was
max_output_messagessagt.
Was Sie im Chat erhalten
Root ist auto, die Schaltfläche sagt file¶
Die typische Wahl für Protokolle und Sicherungen: Sie wollen sie fast nie im Chat lesen, und eine Datei lässt sich leichter aufbewahren.
Dieses eine Ergebnis immer herunterladen
output: auto
menu:
- name: Nginx logs
type: button
function: command
command: "journalctl -u nginx -n 2000 --no-pager"
output: file # (1)!
- Der Rest des Menüs verhält sich weiterhin automatisch. Nur diese Schaltfläche ist auf eine Datei festgelegt.
Was Sie im Chat erhalten
Wenn Root output: text ist¶
Jede Schaltfläche bleibt im Chat, sofern sie nichts anderes sagt. Wählen Sie das, wenn Sie keine Dateien auf Ihr Telefon herunterladen mögen.
Root ist text, die Schaltfläche sagt nichts¶
Überall Chatnachrichten
Was Sie im Chat erhalten
Root ist text, die Schaltfläche sagt auto¶
Die Schaltfläche schaltet den automatischen Wechsel wieder ein, sodass genau
diese eine Schaltfläche eine Datei senden darf, obwohl das restliche Menü das
nie tut. max_output_messages von Root entscheidet, wo der Wechsel passiert.
Eine Schaltfläche darf bei langer Ausgabe eine Datei senden
output: text
max_output_messages: 3 # (1)!
menu:
- name: Package list
type: button
function: command
command: "dpkg -l"
output: auto
- Nur diese Schaltfläche liest das Kontingent, weil sie die einzige im
Modus
autoist.
Was Sie im Chat erhalten
Root ist text, die Schaltfläche sagt text¶
Dasselbe wie nichts zu sagen, aber die Absicht steht geschrieben. Nützlich in einer langen Konfiguration, in der eine spätere Änderung auf oberster Ebene diese Schaltfläche nicht verändern soll.
Eine Schaltfläche auf Chatnachrichten festlegen
Was Sie im Chat erhalten
Root ist text, die Schaltfläche sagt file¶
Eine herunterladbare Schaltfläche in einem reinen Chat-Menü
output: text
menu:
- name: Full system report
type: button
function: command
command: "/usr/local/bin/report.sh"
output: file
timeout: "5m" # (1)!
- Ein Bericht kann eine Weile dauern, deshalb erhält diese Schaltfläche mehr Zeit als das globale Zeitlimit.
Was Sie im Chat erhalten
Wenn Root output: file ist¶
Jedes Ergebnis ist eine Datei, auch ein einzeiliges. Das passt zu einem Bot, der vor allem für Berichte und Archive genutzt wird.
Root ist file, die Schaltfläche sagt nichts¶
Überall Dateien
Was Sie im Chat erhalten
Auch winzige Ergebnisse werden Downloads
Eine einzeilige Antwort kommt als Anhang, den Sie öffnen müssen. Wenn Sie
das stört, lassen Sie Root auf auto und setzen output: file nur an
den Schaltflächen, die es brauchen.
Root ist file, die Schaltfläche sagt auto¶
Die Schaltfläche entkommt der Nur-Datei-Regel und verhält sich wieder normal.
Eine schnelle Prüfung lesbar lassen
output: file
max_output_messages: 2
menu:
- name: Uptime
type: button
function: command
command: "uptime"
output: auto # (1)!
- Zurück zum automatischen Wechsel, nur für diese Schaltfläche.
Was Sie im Chat erhalten
Root ist file, die Schaltfläche sagt text¶
Eine Schaltfläche zurück in den Chat zwingen
Was Sie im Chat erhalten
Root ist file, die Schaltfläche sagt file¶
Der Root-Wert wird wiederholt. Das ist harmlos und hält die Schaltfläche korrekt, wenn Sie Root später lockern.
Eine Schaltfläche, die immer eine Datei sein muss
Was Sie im Chat erhalten
Wie die Datei aussieht¶
Wird ein Ergebnis als Datei zugestellt, erhalten Sie einen Anhang und eine kurze Beschriftung.
- Name — der Schaltflächenname in Kleinbuchstaben mit Bindestrichen, dann
Datum und Uhrzeit in UTC, zum Beispiel
nginx-logs-20260913-091204.txt. - Beschriftung — dieselbe Zusammenfassung, die Sie oben in einer Chatnachricht sehen würden: Schaltflächenname, Exit-Code, Dauer sowie der Hinweis auf Zeitüberschreitung oder Kürzung, wenn es einen gibt.
- Inhalt — nochmals diese Zusammenfassung, dann ein Abschnitt
--- stdout ---und ein Abschnitt--- stderr ---, wenn der Befehl dorthin etwas geschrieben hat.
Inhalt der heruntergeladenen Datei
Grenzen, die Sie nicht ändern können¶
Telegram setzt die Obergrenze, nicht der Bot
- Eine Chatnachricht trägt höchstens 4096 Bytes.
- Im Modus
textsendet der Bot höchstens zehn Nachrichten und endet mit(output too long; showing first N bytes). - Welches
max_output_messagesSie auch schreiben: zehn Nachrichten bleiben die harte Obergrenze.
Schlägt ein Sendevorgang fehl, versucht der Bot es zuerst erneut
Kann die Datei nicht gesendet werden — kein Netz, Telegram bittet um Verlangsamung —, versucht der Bot es automatisch mit wachsender Wartezeit erneut. Erst wenn er aufgibt, fällt er auf Chatnachrichten zurück, damit ein kurzer Ausfall das Ergebnis nicht kostet. Siehe Erneute Zustellversuche.
Run Command nutzt die Root-Einstellung¶
Die Schaltfläche $ >_ Run Command ist nicht Teil Ihres Menüs und hat
deshalb kein eigenes output. Sie folgt immer output und
max_output_messages auf oberster Ebene. Siehe
Menü → Run Command.
Verwandte Themen¶
-
Konfiguration
Alle Schlüssel auf oberster Ebene, mit den drei Ausgabefeldern in einer Tabelle.
-
Schaltfläche
Was eine Schaltfläche überschreiben kann,
outputeingeschlossen. -
Menü
Wie Ergebnisse neben dem Menü liegen und was Run Command tut.
-
Shell
Shell, Arbeitsverzeichnis und Zeitlimit, mit denen Ihre Befehle laufen.
-
Erneute Zustellversuche
Was passiert, wenn ein Sendevorgang an Telegram fehlschlägt.














