Retry 1.0.4 wiederholt Kommandos, Jc 1.17.1 konvertiert Programmausgaben in JSON, Q 3.1.6 erlaubt SQL-Abfragen in CSV/TSV-Dateien, praktische SSH-Tools 1.7, Monitoring in der Konsole mit S-Tui 1.1.3, Webhook 2.8.0 stößt Shell-Befehle an.
Retry 1.0.4
Kommandos wiederholt ausführen
Quelle: https://github.com/minfrin/retry
Lizenz: Apache 2.0
Alternativen: Shell, Python
Versierte Anwender greifen gern zu einer Skriptsprache ihrer Wahl, um das wiederholte Ausführen von Kommandos mit einer Schleife zu automatisieren. Wer nicht skripten möchte oder kann, der findet in Retry einen praktischen Assistenten. Das in C geschriebene Tool setzt im Hintergrund auf Stdin, Stdout und Stderr. Manche Distributionen liefern Retry als Paket aus, aber auch die Installation aus den Quellen geht leicht von der Hand.
Für eine einfache, schnelle Automatisierung rufen Sie »retry« zusammen mit dem auszuführenden Kommando und optionalen Parametern auf. Liefert der Befehl bei der Ausführung mit Retry nicht den Rückgabewert 0 zurück, wertet das Tool das als Fehlschlag und wartet zehn Sekunden, bis es einen weiteren Versuch startet. Das wiederholt sich so lange, bis die Ausführung erfolgreich ist oder Sie den Versuch beenden. Soll Retry nach einer bestimmten Zeit seine Bemühungen einstellen, geben Sie die Anzahl der Versuche hinter »-t« an. Das Zeitintervall zwischen den Anläufen regelt »-d«.
Bei Bedarf geben Sie hinter »-m« eine Textnachricht ein, die bei einem erfolglosen Versuch erscheint. In der Voreinstellung gibt Retry nur den Namen des Befehls aus. Die Schalter »–while« und »–until« legen Laufzeitbedingungen fest. Retry probiert die Wiederholung dann nur bis zu einem bestimmten Rückgabewert oder nur so lange, wie ein bestimmter Wert nicht zurückgegeben wurde.
Retry ist eine interessante Alternative für alle wiederkehrenden Aufgaben, die automatisiert ablaufen sollen. Die Bedienung ist einfach, die Manpage aussagekräftig. Das Tool macht auch in eigenen Skripten eine gute Figur.
Jc 1.17.1
Programmausgabe in JSON konvertieren
Quelle: https://github.com/kellyjonbrazil/jc
Lizenz: MIT
Alternativen: Jq
Das JSON-Format kommt oft bei Konfigurationsdateien oder beim Datenaustausch zwischen mehreren Applikationen zum Einsatz. Kann eine Anwendung ihre Ausgaben von Haus aus nicht in diesem Format speichern, dann hilft unter Umständen das Python-Programm Jc weiter. Es analysiert die Ausgabe eines Programms und versucht, sie dann ins JSON-Format zu übertragen. Auf Github stellen die Entwickler diverse Pakete sowie die Quellen bereit. Alternativ installieren Sie das Python-Tool über Pip.
Sie übergeben die Daten über eine Pipe an Jc. Für die korrekte Analyse und Aufbereitung muss das Tool außerdem wissen, um welche Art von Daten es sich handelt. Daher steht hinter dem Befehl »jc« ein Parser. Das Tool kennt über 75 Formate für Programmausgaben, wobei die Palette von ACPI und Crontab über Konfigurationsdateien wie »/etc/fstab« oder »/etc/group« bis hin zu Systemctl-Ausgaben reicht. Auch vor Dateien im XML- oder YAML-Format macht das Tool nicht halt. Eine Übersicht und einige Beispiele liefert die Online-Hilfe (»-h«).
Die aufbereitete Ausgabe im JSON-Format leiten Sie von der Standardausgabe über eine Pipe weiter oder dirigieren sie in eine Datei um. Das direkte Speichern in einer Datei unterstützt Jc nicht. Für eine strukturierte, übersichtlichere Ausgabe mit farblich hervorgehobenen Variablen und Werten sorgt der Schalter »-p«; »-m« veranlasst eine farblose Ausgabe. Der Parameter »-d« schaltet in den Debugging-Modus, »-dd« gibt noch mehr Informationen preis.
Die aktuelle Version des äußerst nützlichen Tools Jc bringt neben Fehlerkorrekturen auch einige neue Parser mit.
Q 3.1.6
SQL-Abfragen für CSV/TSV-Dateien
Quelle: https://github.com/harelba/q
Lizenz: GPLv3
Alternativen: CSV-to-SQLite, Csvq
Für den Austausch tabellarischer Daten kommen oft CSV- oder TSV-Dateien zum Einsatz. Die Lesbarkeit der textbasierten Formate halten sich aber in Grenzen. Q hilft bei der Interpretation und wertet solche Dateien mit SQL-artigen Statements aus. Auf Github stehen Binaries des Python-Tools bereit, sodass Sie es nicht selbst bauen müssen.
Q verarbeitet CSV- und TSV-Dateien, wobei es jedes File wie eine separate Tabelle behandelt und alle wichtigen Elemente einer SQL-basierten Select-Abfrage unterstützt. So grenzen Sie beispielsweise Ausgaben mit Where-Bedingungen ein oder sortieren die Daten per Order-by-Klausel. Q erkennt den Datentyp und den Spaltennamen selbstständig. Leerzeichen in einer Zeile interpretiert es als Spaltentrenner, alternative Trenner geben Sie beim Aufruf hinter »-d« an.
Soll Q komprimierte Dateien auswerten, starten Sie es mit dem Schalter »-z«, sodass es die Datei vor der Auswertung auspackt. In der Voreinstellung setzt Q auf UTF-8, alternative Ein- und Ausgabekodierungen stehen hinter »-e« und »-E«. Der Schalter »-A« sorgt dafür, dass Q die Eingabedatei analysiert, also die Spaltennamen und die dazugehörigen Datentypen ermittelt. Im Test klappte das jedoch nicht immer.
Q bietet eine Vielzahl an Optionen; gut, dass die Github-Seite zahlreiche Beispiele aufführt. Trotz Online-Hilfe und Manpage erfordert das Tool etwas Einarbeitung.
SSH-Tools 1.7
Tools für das SSH-Protokoll
Quelle: https://github.com/vaporup/ssh-tools
Lizenz: GPLv3
Alternativen: SSH
Die Secure Shell SSH gilt als sicherer Standard, um auf entfernte Systeme zuzugreifen. Basierend auf dem gleichnamigen Protokoll haben Entwickler zahlreiche Clients oder Zusatzfunktionen implementiert. Mit der Sammlung SSH-Tools kommen in Form von acht Shell-Skripten weitere praktische Helfer dazu. Manche Distributionen haben bereits eine ältere Version im Gepäck; wegen zahlreicher Fehlerkorrekturen empfiehlt sich aber der Einsatz der aktuellen Ausgabe.
Die rein informativen Werkzeuge »ssh-keyinfo«, »ssh-certinfo« und »ssh-hostkeys« ermitteln detaillierte Informationen zu Schlüsseln und Zertifikaten. Der praktische Alltagshelfer »ssh-ping« prüft Systeme, die ICMP-Pakete durch eine Firewall blockieren. Genau wie bei Ping geben Sie optional eine maximale Anzahl an Paketen und ein Sendeintervall an. Lauscht der SSH-Server der Gegenseite nicht auf Port 22, legen Sie mit »-p« einen alternativen Port fest, zudem können Sie zwischen IPv4 und IPv6 wählen.
Der Befehl »ssh-diff« vergleicht lokale und entfernte Dateien und gibt die Unterschiede im Diff-Format aus, ohne die Datei des Remote-Systems vorher übertragen zu müssen. Auch hier definiert »-p« falls gewünscht einen Port. Im Hintergrund greift »ssh-diff« auf das bewährte GNU Diff zurück. Ist auf dem lokalen System Colordiff installiert, bereitet das Tool die Ausgabe außerdem farblich auf.
Die SSH-Tools erweisen sich als nützlicher Werkzeugkasten für alle, die oft und gern mit SSH arbeiten. Da eine Manpage fehlt, hilft nur »-h« bei den einzelnen Tools weiter.
S-Tui 1.1.3
Monitoring-Tool für die Konsole
Quelle: https://github.com/amanusk/s-tui
Lizenz: GPLv2
Alternativen: Hardinfo, Linpack Xtreme
Viele Monitoring-Lösungen kommen mit einer ansprechenden grafischen Oberfläche, überwachen gleich ganze Server-Farmen. Eine kompaktere Lösung für das Terminal, auch über SSH-Verbindungen, bietet S-Tui, die Stress Terminal UI. Das Python-Tool unterstützt in der aktuellen Version auch Power-Reads auf AMD-Prozessoren und arbeitet zudem auf Raspberry-Pi-SoCs.
Ohne weitere Parameter aufgerufen, zeigt S-Tui die aktuelle Last der Prozessorkerne und die anliegende Taktung pro Kern. Falls möglich, erfasst es sogar die Temperatur der CPU. Das erfordert bei neueren Kernel-Versionen Root-Rechte. Neben den Werten für die einzelnen Cores ermittelt das Tool einen Gesamtwert. In der Voreinstellung aktualisiert S-Tui seine Anzeige alle zwei Sekunden; das Intervall lässt sich im laufenden Betrieb anpassen. Über »Graphs« blenden Sie weitere Graphen ein und wieder aus.
In der Voreinstellung läuft S-Tui im Monitoring-Modus, beobachtet also nur. Für Lasttests kombinieren Sie S-Tui mit dem Tool Stress. Über den Menüpunkt Stress Options geben Sie die Parameter für den Lasttest direkt in S-Tui an und starten den Lasttest dann mit Stress. Sie können S-Tui in eigene Skripte integrieren: Mit »-t« aufgerufen, gibt es nur eine Zeile mit den aktuellen Systemwerten aus. Der Parameter »-j« sorgt für einen Output im JSON-Format. Ein Mitschnitt aller Werte über die gesamte Laufzeit im CSV-Format schreibt »-c«.
S-Tui liefert einen schnellen Blick auf die Systemlast lokaler und entfernter Rechner und erspart so den Einsatz einer umfassenden Monitoring-Lösung.
Webhook 2.8.0
Webhook-Server, um Shell-Befehle anzustoßen
Quelle: https://github.com/adnanh/webhook
Lizenz: MIT
Alternativen: Tty2web, Gotty
Mit Webhook richten Sie HTTP-Endpunkte (Hooks) auf dem Webserver ein, die dann Befehle ausführen. Dabei übermittelt das Go-Programm auch Daten aus der HTTP-Anfrage an die Kommandos – Header, Payload, Abfragevariablen und mehr. Einige Distributionen bringen ältere Ausgaben des Tools mit, die aktuelle Webhook-Version finden Sie auf Github.
Sie konfigurieren den Webhook-Dienst über Kommandozeilenparameter. Die einzelnen Hooks übergeben Sie als Konfigurationsdatei im JSON- oder YAML-Format. Die Projektseite liefert zahlreiche Beispiele, die als Vorlage für eigene Hooks dienen können. Eine einfache Konfiguration umfasst eine eindeutige »id«, die Sie beim Aufruf angeben, sowie den auszuführenden Befehl und ein Arbeitsverzeichnis. Komplexere Konfigurationen legen Response-Nachrichten und die Auswertung übergebener Parameter fest.
Die Konfiguration übergeben Sie beim Start über »-webhook«. Ohne weitere Parameter erwartet Webhook eingehende Hooks auf allen Schnittstellen auf Port 9000. Zum Triggern dienen der Webbrowser oder Clients wie Curl oder Wget. Über »-ip« und »-port« legen Sie alternative Schnittstellen und Ports fest. Die Schalter »-secure« und »-cert« richten eine verschlüsselte Kommunikation ein (TLS 1.2). Mit Root-Rechten gestartet, bestimmen Sie über »-setgid« und »-setuid«, wer Webhook nutzen darf.
Wollen Sie das praktische Webhook ausprobieren, finden Sie im Github-Repository eine ausführliche Dokumentation und viele Anwendungsbeispiele. (hej)










