Dnslookup 1.4.3
DNS-Abfragen auf der Shell
Quelle: https://github.com/ameshkov/dnslookup
Lizenz: GPLv3
Alternativen: Nslookup, Dig
Wer die IP-Adresse zu einem Domainnamen (oder umgekehrt) abfragen möchte, der kann eines der zahlreichen Online-Tools oder einen Befehl wie Host oder Nslookup im Terminal einsetzen. Mit dem Go-basierten Dnslookup steht eine Alternative bereit, die außer einfachem DNS auch moderne Protokolle unterstützt, darunter DNS-over-HTTPS (DoH), DNS-over-TLS (DoT), DNSCrypt und DNS-over-Quic (DoQ, in der aktuellen Version noch als experimentell gekennzeichnet). Anwender können das Tool als Snap oder als Binärpaket von der Github-Seite beziehen. Neben der ausführbaren Datei und den Lizenzbedingungen enthält das Paket eine kurze README-Datei mit Anwendungsbeispielen.
Dnslookup setzt im Hintergrund auf das Dnsproxy-Modul des Werbeblockers Adguard. Die Steuerung erfolgt über Parameter beim Aufruf. Für eine einfache Abfrage übergibt der Benutzer die Domain beziehungsweise IP-Adresse und den zu verwendenden DNS-Server. Den muss man zwingend nennen, da Dnslookup die Datei »/etc/resolv.conf« nicht auswertet. Wer eine Abfrage via DoT stellen möchte, leitet die Adresse des zu verwendenden DNS-Servers mit »tls://« ein. Beim DoH-Lookup können Nutzer das Statement »https://dns.adguard.com/dns-query« hinzufügen, falls der Zielserver keine (vollständige) HTTPS-Unterstützung bietet.
Dnslookup überprüft Zertifikate der DNS-Server auf ihre Gültigkeit, was sich über »VERIFY=0« deaktivieren lässt. Wichtig: Dieser Parameter muss vor dem eigentlichen Dnslookup-Befehl stehen. Seine Ergebnisse schreibt Dnslookup im gewohnten Format in die Konsole. Wenn der Nutzer »JSON=1« vor das Kommando schreibt, gibt das Tool das Ergebnis im JSON-Format aus.
Dnslookup überzeugt auf ganzer Linie. Das Tool punktet nicht nur mit der Unterstützung vieler verschlüsselter Protokolle, sondern auch mit einer optionalen JSON-Ausgabe – ideal zum Weiterverarbeiten der Ergebnisse.
Mrhttpd 2.5.7
Schlanker Webserver
Quelle: https://sourceforge.net/projects/mrhttpd
Lizenz: GPLv2
Alternativen: Lighttpd, Nginx
Der Platzhirsch unter den Webservern ist und bleibt Apache – er bietet einen enormen Funktionsumfang, den man allerdings mit einem großen Bedarf an Systemressourcen erkauft. Wer es lieber kompakt mag, der sollte sich Mrhttpd ansehen. Der in C implementierte Webserver arbeitet Thread-basiert und benötigt im Einsatz nur wenige Kilobyte Arbeitsspeicher. Laut Entwickler kommt das Tool bei vielen gleichzeitigen Verbindungen besser mit dem BFS-Scheduler zurecht als Apache. Neben statischen Inhalten unterstützt Mrhttpd auch CGI-Skripte; eine verschlüsselte Kommunikation ist jedoch nicht möglich.
Etwas ungewöhnlich: Die Konfiguration erfolgt bereits während des Kompilierens und nicht während der Laufzeit. Dazu passt der Admin die Datei »mrhttpd.conf« aus dem Quellverzeichnis an und führt anschließend den bekannten Dreierschritt »configure«, »make« und »make install« aus. Die fest einkompilierte Konfiguration und der geringe Ressourcenbedarf machen Mrhttpd zum idealen Webserver für Embedded- und IoT-Geräte.
Die gut dokumentierte mitgelieferte Beispielkonfiguration kann als Vorlage für das eigene Setup herhalten. Der Anwender gibt hier den zu verwendenden TCP-Port und den Systembenutzer für Mrhttpd an und hinterlegt die Pfade zu öffentlichen, privaten und CGI-Verzeichnissen. Für die Fehleranalyse bieten sich das Hochsetzen der Option »Log_Level« und der Eintrag »DETACH=0« an. Letzterer hält den Server nach dem Start im Vordergrund; in der Voreinstellung gibt Mrhttpd die Konsole nach dem Aufruf wieder frei.
Mrhttpd ist weniger behäbig und ressourcenschonender als Apache und eignet sich ideal für den Einsatz auf Embedded-Systemen. Die fest einkompilierte Konfiguration hat allerdings auch Nachteile, denn die Fehlersuche gestaltet sich etwas mühsam.
Pretty-Exec 0.0.32
Kommandos optisch aufbereiten
Quelle: https://github.com/KSXGithub/pretty-exec
Lizenz: MIT
Alternativen: keine
Wer häufig Anleitungen für Arbeitsabläufe in der Shell erstellt oder in einer Live-Demonstration Befehle vorführt, der kennt das Problem: Bei einer langen Ausgabe sieht niemand mehr so richtig, wo das eigentliche Kommando steht – von langen Parametern und Optionen ganz zu schweigen. Ein Syntax-Highlighting fürs Terminal namens Pretty-Exec schafft Abhilfe. Das in Rust implementierte Tool fungiert als eine Art Wrapper; es gibt den auszuführenden Befehl noch einmal in der Shell aus und hebt ihn sowie die Parameter farblich hervor.
Der Anwender ruft das Tool gefolgt vom auszuführenden Kommando samt Parametern auf. Der Befehl erscheint in der Voreinstellung in grüner Schrift, die Parameter in Rot. Pretty-Exec erkennt selbstständig, was ein Kommando und was eine Option ist. Mit dem Schalter »–color« steuert der Benutzer die Einfärbung oder unterbindet sie, was allerdings den Sinn des Tools negiert. Wer nur wissen möchte, wie die kolorierte Ausgabe aussieht, ohne den Befehl auszuführen, startet mit »–skip-exec« einen Testlauf.
Enthält das per Pretty-Exec ausgeführte Kommando Parameter, die hinter einem Minuszeichen stehen, erwartet das Tool deren Angabe hinter der Option »–«, da es sonst die Parameter als seine eigenen interpretieren würde. Über »–github-actions« steht außerdem eine Möglichkeit zur Verfügung, um die Ausgabe von Befehlen in einem Github-Action-Log zu erfassen.
Pretty-Exec ist ein interessantes Tool, um Befehle und Parameter farblich hervorzuheben. Die Dokumentation fällt eher dürftig aus, lediglich die Projektseite bietet einige Anhaltspunkte.
Sshw 1.1.0
SSH-Verbindungen verwalten
Quelle: https://github.com/yinheli/sshw
Lizenz: MIT
Alternativen: Nccm
Sshw ist ein SSH-Client-Wrapper für den automatischen Verbindungsaufbau. Neben Binaries für viele verschiedene Plattformen enthält das Github-Repository ein Beispiel für die Konfigurationsdatei im YAML-Format. In Sachen Dokumentation hält sich das Tool bedeckt. Wer alle Optionen zur Einrichtung entdecken möchte, muss einen Blick in den Quellcode werfen.
Für den Aufbau der SSH-Verbindung greift Sshw auf die entsprechenden Go-Module zurück und benötigt somit keinen installierten SSH-Client. In der Konfigurationsdatei leitet jeweils ein Bindestrich einen Block für eine SSH-Verbindung ein. Der Anwender kann wählen, ob er die Verbindung als Einzeiler in Klammern oder als strukturierten Block definiert. Jeder Block benötigt einen eindeutigen Namen, den Benutzernamen auf dem Zielsystem sowie die Adresse des entfernten Rechners. Außerdem lassen sich ein Port und das Passwort angeben – Letzteres liegt dort allerdings im Klartext. Fehlt das Kennwort in der Einrichtung, erscheint nach dem Start eine Eingabeaufforderung. Das Schlüsselwort »keypath« beschreibt bei Bedarf den Pfad zu einem SSH-Schlüssel.
Ist keine direkte Verbindung möglich, definiert der Benutzer über »jump« ein System für den Sprung auf den Zielrechner. Zur besseren Organisation kann man hinter »children« unter einem Namen mehrere Verbindungen hinterlegen – das Ganze ähnelt der Verzeichnisstruktur eines Dateisystems. Der Sshw-Aufruf selbst erfolgt ohne Parameter. Das Tool listet dann alle in der Konfiguration enthaltenen Verbindungen auf, der Benutzer navigiert mit den Pfeiltasten zum gewünschten Eintrag.
Sshw hat Potenzial. Die Dokumentation könnte ausführlicher sein; schön wären auch Features wie X- oder Port-Forwarding.
Taskctl 1.2.2
Routineaufgaben automatisieren
Quelle: https://github.com/taskctl/taskctl
Lizenz: GPLv3
Alternativen: Make, Cmake
Erfahrene Anwender verpacken wiederkehrende Aufgaben oder aufeinander aufbauende Befehle gern in Skripte. Wer keine Skriptsprache beherrscht, kann sich mit Taskctl behelfen. Eigentlich als als Alternative zum klassischen GNU-Tool Make gedacht, eignet sich das Go-Programm auch zum Steuern administrativer Aufgaben. Auf der Github-Seite des Tools stehen Binärpakete zum Download bereit.
Beim Aufruf ohne Parameter sucht Taskctl im aktuellen Verzeichnis nach einer Konfigurationsdatei im YAML-Format. Wird es fündig, gibt es eine interaktive Liste aller enthaltenen Tasks und Pipelines aus. Mit den Pfeiltasten blättert man in der Ausgabe und wählt dann eine Aufgabe aus. Alternativ lässt sich der Name des Tasks beim Start angeben. Das Kommando »init« erzeugt ein Template einer Einrichtungsdatei, die der Anwender dann anpasst. Taskctl unterscheidet in der Konfiguration zwischen »task«, »pipeline« und »watcher«.
Jeder Task besteht aus einem eindeutigen Namen und dem auszuführenden Befehl; optional enthält er eine Beschreibung und Variablen. Mehrere Tasks bilden eine Pipeline, die das Tool nacheinander abarbeitet. Der Nutzer kann für jeden Task festlegen, von welchem anderem er abhängt. Das Kommando »graph« erzeugt eine grafische Darstellung dieser Abhängigkeiten. Im Bereich »watcher« steht, welche Dateien Taskctl überwachen soll. Je nach Aktion führt das Tool dann einen vordefinierten Task aus. Der Befehl »watch« startet die Überwachung. Der Befehl »validate« prüft eine Konfiguration vor dem ersten Einsatz, der Schalter »–dry-run« startet einen Testlauf.
Taskctl ist ein praktisches Tool für alle, die den Einsatz von Make oder Cmake scheuen und nicht selbst skripten möchten. Die umfassende Anleitung mit Beispielen auf der Github-Seite überzeugt. (Uwe**Vollbracht/hej)











