Onefetch 2.11.0, Dsq 0.2.0, Pync (24. Januar 2022), Hashrat 1.14, Lazydocker 0.12, Vegeta 12.8.4.
Onefetch 2.11.0
Git-Auskunft in der Shell
Quelle: https://github.com/o2sh/onefetch/
Lizenz: MIT
Alternativen: Git
Das 2005 von Linus Torvalds initiierte Git kommt in vielen Open-Source-Projekten zum Einsatz. Die freie Software zur verteilten Versionsverwaltung ermöglicht mehreren Entwicklern, parallel und dezentral an einem Projekt (Repository) in verschiedenen Entwicklungszweigen (Branches) zu arbeiten. Wer keinen grafischen Git-Client verwendet, sondern das Kommandozeilentool »git« bevorzugt, findet in Onefetch einen auskunftsfreudigen Helfer. Das in Rust geschriebene Tool zeigt Informationen und Codestatistiken direkt im Terminal an. Es arbeitet offline und braucht keine aktive Internet-Verbindung. Zur Installation nutzen Sie eines der auf Github angebotenen Pakete. Dort findet sich auch ein kompaktes Wiki, das alle Funktionen erläutert. Alternativ blendet der Schalter »-h« eine Online-Hilfe ein.
Sie rufen Onefetch ohne weitere Optionen im lokalen Git-Repository auf. Haben Sie das nicht per »git clone« erzeugt, verweigert Onefetch allerdings den Dienst. Nach dem Start blendet das Werkzeug auf der rechten Seite Informationen ein, darunter die Git-Version, den Namen des Projekts, die Anzahl der Branches und Tags, den Hash des letzten Commits, den Erstellungszeitpunkt des Repositorys sowie die verwendeten Programmiersprachen. Außerdem zeigt Onefetch den Namen der beteiligten Autoren, den Zeitpunkt der letzten Änderung, die Anzahl der Contributors, die URL zum Remote-Repository sowie die Anzahl der Codezeilen und Commits an. Die Größe und die verwendete Lizenz schließen die Ausgabe ab.
Links erscheint in der Voreinstellung das Logo der primären Programmiersprache als ASCII-Grafik. Über »-i« blenden Sie eigene Bilder ein, »–show-logo« deaktiviert die Anzeige. Die unterstützten Paketmanager zeigt »-p« an, und die E-Mail-Adressen der Autoren verrät »-E«.
Das interessante Tool Onefetch gibt bereitwillig Auskunft über lokale Git-Repositories, sofern diese ordentlich geklont wurden. Ein paar praktische Beispiele täten dem Wiki gut.
Dsq 0.2.0
SQL-Abfragen für strukturierte Daten
Quelle: https://github.com/multiprocessio/dsq
Lizenz: Apache 2.0
Alternativen: Q, CSV-SQL
Die leistungsfähige Datenbanksprache SQL definiert Datenstrukturen in relationalen Datenbanken und kann darauf basierende Datenbestände auch bearbeiten. Viele Anwender wünschen sich ein solches Werkzeug auch für andere Datenformate. Das in Go geschriebene Dsq erfüllt diesen Wunsch. Es fungiert als Kommandozeilenschnittstelle zu Datastation, einer grafischen IDE, die ihrerseits auf SQLite zurückgreift. Dsq fungiert als einfacher SQL-Interpreter für strukturierte Datenformate, darunter CSV, TSV, JSON, Parquet und Excel sowie Apache- und Nginx-Logfiles. Die Protokolle nimmt Dsq ausschließlich über die Standardeingabe entgegen. Auf Github gibt es Pakete für Linux, MacOS und Windows. Eine ausführliche Beschreibung aller Features finden Sie auf der Projektseite, »-h« blendet eine kurze Online-Hilfe ein.
Sie übergeben beim Start die auszuwertende Datei als ersten Parameter. Das »SELECT«-Statement mit der Auswertung folgt in Anführungszeichen, etwa »dsq testdata.json “SELECT * FROM {} WHERE x > 10″«. Wie bei SQL üblich, können Sie die Ausgabe auf bestimmte Spalten begrenzen und deren Reihenfolge variieren. Auch das Sortieren der Daten oder eine Limitierung der angezeigten Datensätze ist möglich. Geben Sie beim Start mehrere Dateien an, kann Dsq Inhalte mit dem Befehl »JOIN« im »SELECT«-Statement kombinieren. Dabei versehen Sie die auszugebenden Felder mit der Nummer der Tabelle, um Fehlermeldungen zu vermeiden.
Soll Dsq von Stdin lesen, geben Sie hinter »-s« das Datenformat an, etwa »dsq -s csv« oder »dsq -s parquet«. Anwendungsbeispiele zur Kombination mit anderen Befehlen, zu Pipes und zur direkten Verarbeitung zeigt die Github-Projektseite.
Im Vergleich mit ähnlichen Tools überzeugt Dsq vor allem mit seiner Geschwindigkeit.
Pync (24. Januar 2022)
Netcat für Python
Quelle: https://github.com/brenw0rth/pync
Lizenz: MIT
Alternativen: Netcat
Netcat ist im Netzwerk für das Schreiben und Lesen von Daten zuständig. Das “Schweizer Taschenmesser für TCP/IP”, so die Bezeichnung der Entwickler, nutzt TCP/IP und UDP für den Datenaustausch. Viele Admins greifen auf Netcat zurück, um Fehler und Probleme im Netzwerk zu finden oder einfach nur Verbindungen zu testen. Mit Pync steht nun eine Python-basierte Alternative zur Verfügung, die Netcat-ähnliche Funktionen bietet und sich bei Bedarf als Modul in eigene Skripte einbauen lässt. Möchten Sie Pync nicht aus den Quellen bauen, installieren Sie es via Pip. Es unterstützt Python 2.7 und neuer.
Eine Manpage fehlt, sodass die Online-Hilfe (»-h«) und die Beispiele auf der Github-Seite ausreichen müssen. Die beschreibt den Einsatz als Portscanner, zur Datenübertragung, zur Ausführung von Remote-Kommandos sowie zur interaktiven Kommunikation. Auf der Empfängerseite starten Sie Pync zusammen mit »-l« und geben die IP-Adresse sowie die Port-Nummer an, auf der der Dienst eingehende Verbindungen erwartet. »-k« sorgt dafür, dass Pync aktiv bleibt, auch wenn ein Client die Verbindung beendet. Auf Client-Seite starten Sie das Tool unter Angabe der IP und des Ports der Gegenstelle. Statt Pync kann auch Netcat als Client dienen.
Um auf dem entfernten Rechner einen Befehl auszuführen, geben Sie diesen hinter »-e« an. Ein Feedback gibt der Client in der Voreinstellung nicht, mit dem Parameter »-v« wird das Tool auskunftsfreudiger. Soll Pync als Portscanner arbeiten, ist »-z« erforderlich. Das sorgt dafür, dass geöffnete Verbindungen sofort wieder geschlossen werden, was Prozesse automatisiert. In der Voreinstellung verwendet Pync TCP, »-u« schaltet auf UDP um.
Pync ist besonders für Python-Entwickler interessant. Beim Funktionsumfang kann das junge Tool noch nicht mit Netcat mithalten.
Hashrat 1.14
Prüfsummen erzeugen und abgleichen
Quelle: https://github.com/ColumPaget/Hashrat
Lizenz: GPLv3
Alternativen: Md5sum, Shasum
Prüfsummen bieten ein probates Mittel, um die Integrität von Daten beim Übermitteln oder Speichern zu gewährleisten. Unter Linux gibt es zahlreiche Programme, die verschiedene Algorithmen beherrschen, doch deren Handling unterscheidet sich stark. Hier setzt Hashrat an: Das C-Tool unterstützt gängige Algorithmen wie Sha- und Md-Derivate, kommt aber auch mit den weniger verbreiteten JH und Whirlpool zurecht. Damit steht dann ein Werkzeug für viele verschiedene Hash-Algorithmen bereit.
Eine Konfigurationsdatei gibt es nicht, Sie steuern Hashrat über Aufrufparameter. Dazu benennen Sie den gewünschten Algorithmus sowie eine Datei oder ein Verzeichnis; Wildcards sind erlaubt. Eine Liste von Dateien steht hinter »-f«, zum expliziten Ausschließen oder Aufnehmen weiterer Files stehen »-x« respektive »-i« bereit. »-r« veranlasst das Tool, Verzeichnisbäume rekursiv zu bearbeiten. Die Schalter »-mtime«, »-mmin« und »-year« definieren zeitliche Begrenzungen, »-dups« schließt Dubletten aus. Als Ergebnis gibt Hashrat für jede Datei den verwendeten Algorithmus, den ermittelten Hash-Wert sowie die Zugriffs- und Eigentumsrechte an.
Lenken Sie die Ausgabe in eine Datei um, können Sie diese später über »-c« zum Vergleich heranziehen. Verwenden Sie stattdessen »-cf«, zeigt Hashrat nur die Abweichungen an. Aktuelle Versionen erlauben das Festlegen von Präfixen bei der Ein- und Ausgabe und bringen neue Xdialog-Features mit.
Hashrat ist leicht zu bedienen und unterstützt alle gängigen Algorithmen für Prüfsummen. Der Umstieg auf die aktuelle Version lohnt sich.
Lazydocker 0.12
Docker-Container im Terminal verwalten
Quelle: https://github.com/jesseduffield/lazydocker
Lizenz: MIT
Alternativen: Docker
Docker hat das Installieren und Verteilen komplexer Anwendungen deutlich erleichtert. Kubernetes, das im Profi-Umfeld diese Container verwaltet, ist für kleine Umgebungen eher überdimensioniert. Als Alternative eignet sich Lazydocker, das sich auf wesentliche Funktionen beschränkt und lediglich Docker-Container auf dem lokalen System verwaltet. Auf Github finden Sie fertige Pakete für Linux, MacOS und Windows. Lazydocker benötigt Docker 1.13 oder neuer und optional Docker-Compose 1.23.2 oder neuer.
Eine Dokumentation gibt es nicht. Informationen zu Abhängigkeiten, zur Tastenbelegung und Konfiguration entnehmen Sie der Github-Projektseite. Bereits mit den Grundeinstellungen vermag Lazydocker aber alle auf dem Rechner installierten Container zu managen. Das Programm arbeitet komplett im Terminal und macht daher auch auf entfernten Rechnern über SSH eine gute Figur. Die Curses-Oberfläche unterteilt sich in mehrere Bereiche. Die linke Seite zeigt alle verfügbaren Container, Volumes und Images. Zur Navigation verwenden Sie die Pfeiltasten. Je nach Abteilung blendet Lazydocker dann rechts die Konfiguration eines Images oder Volumes ein.
Sie können außerdem die Konfiguration, das Protokoll, eine Statistik und die Prozessliste der einzelnen Container einsehen. Ein Druck auf [X]+ blendet eine Übersicht der Tastenkürzel ein. [S]+ stoppt etwa den aktuellen Container und startet ihn neu. [E]+ öffnet eine Shell im Container, [B] blendet sogenannte Bulk-Befehle ein, die alle Container anhalten oder entfernen. Die Tastenbelegung variiert je nach dem Bereich, in dem sich Sie befinden.
Suchen Sie nach einer komfortablen Möglichkeit zur Docker-Verwaltung auf der Shell, sollten Sie sich Lazydocker anschauen. Das Tool bringt mehr Übersicht in die Container-Landschaft.
Vegeta 12.8.4
HTTP-Lasttest
Quelle: https://github.com/tsenart/vegeta
Lizenz: MIT
Alternativen: Pewpew
Der vielseitige Lasttester Vegeta testet HTTP-Dienste mit einer konstanten Anfragerate und lässt sich als Kommandozeilentool oder Bibliothek einsetzen. Das in Go implementierte Tool fehlt in den Repositories aktueller Distributionen noch. Auf Github stehen die Quellen sowie Binaries für Linux und MacOS zum Download bereit. Die beigelegte Readme-Datei enthält alle Informationen, die auch auf der Projektseite stehen; eine kürzere Online-Hilfe blendet »-h« ein.
Die Konfiguration eines Lasttests erfolgt über Aufrufparameter. Dazu geben Sie die URL des zu prüfenden Webservers sowie den HTTP-Request an und leiten den Output über eine Pipe an Vegeta weiter. Nach 30 Sekunden bricht das Tool Request-Versuche ab, wenn keine Antwort kommt. Sie passen den Wert über »-timeout« an. Vegeta kennt die Arbeitsmodi »attack«, »report«, »plot« und »encode«. Alle Kommandos bieten weitere Parameter. Während »attack« den eigentlichen Lasttest steuert, dienen »plot« und »report« zum Auswerten der erfassten Daten. Wie der Test ablaufen soll, legen Sie über »-duration«, »-max-connections« und »max-workers« fest.
In der Voreinstellung berichtet Vegeta im HTML-Format auf der Standardausgabe. Um die Ergebnisse zu speichern, geben Sie hinter »-output« den Namen einer Datei an. Die HTML-Dateien zeigen eine grafische Darstellung des gesamten Verlaufs. Alternativ erzeugt das Tool Berichte im Textformat oder als JSON-Datei und notiert die Anzahl der vorgenommenen Anfragen, die benötigte Zeit, die Zahl der übertragenen Bytes und der erfolgreichen Zugriffe.
Vegeta testet zuverlässig und notiert die Ergebnisse in verschiedenen Formaten. In Kombination mit weiteren Tools gelingt auch eine grafische Echtzeitanalyse. Beispiele dazu zeigt die Github-Seite. (Uwe**Vollbracht/hej)











