Duf 0.5.0
Speicherplatz im Auge behalten
Quelle: https://github.com/muesli/duf
Lizenz: MIT
Alternativen: Df, Di
Wie viel Platz ist auf den Festplatten und den jeweiligen Partitionen? Das Tool Df aus den GNU Coreutils ist bei den meisten Shell-Fans das Tool der Wahl, wenn es um diese Fragen geht. Es gibt zuverlässig Auskunft über den Füllstand, ist allerdings nicht besonders übersichtlich. Das in Go implementierte Duf will diesen Mangel mit Tabellen und Farbe beheben. Anwender müssen das Konsolenprogramm nicht selbst aus den Quellen bauen; auf Github stehen Binärpakete für Linux, MacOS, FreeBSD, OpenBSD und Windows bereit.
Ohne Parameter aufgerufen, listet Duf den Füllstand aller eingebundenen Partitionen und Dateisysteme tabellarisch auf. Für jeden Mountpoint macht es Angaben zur Größe, zum belegten und zum freien Platz. Außerdem zeigt es das Dateisystem und den Gerätenamen an. Duf sortiert die Mountpoints nach lokalen und speziellen Speichereinheiten. Zu Letzteren zählen etwa eingebundene RAM-Disks oder Mountpoints, die das temporäre Dateisystem Tmpfs nutzen (etwa »/run« oder »/dev/shm«). Zum Ausblenden bestimmter Informationen dient »–hide«; dahinter steht eine der Optionen »local«, »network«, »fuse«, »special«, »loops« oder »binds«.
Über den Schalter »–sort« sortieren Benutzer die Ausgabe nach Mountpoint, Typ, Dateisystem oder Größe. Wie Df kann auch Duf die Inodes statt der Blockgröße darstellen (»–inodes«). Erkennt das Tool die Farbeinstellungen des Terminals nicht richtig, schaltet »–theme light« auf ein helleres Theme um. Praktisch: Zur Weiterverarbeitung schreibt »–json« die Ergebnisse im JSON-Format ins Terminal.
Duf ist wirklich übersichtlich und zeigt alles hübsch strukturiert und in verschiedenen Farben an.
Sfz 0.3.0
Statische Dateien freigeben
Quelle: https://github.com/weihanglo/sfz
Lizenz: MIT/Apache 2.0
Alternativen: FileServer, Serve
Wer ohne großen Aufwand statische Dateien oder Verzeichnisse freigeben möchte, nutzt meist das HTTP-Protokoll. Für kleine Ad-hoc-Freigaben sind vollwertige Webserver aber überdimensioniert. Hier springt das kleine Rust-Tool Sfz in die Bresche. Ein Binärpaket findet sich auf Github; ihm fehlt jedoch eine Manpage, sodass sich Anwender mit »-h« einen Überblick verschaffen müssen.
Ohne weitere Parameter aufgerufen, stellt Sfz das aktuelle Verzeichnis samt Unterverzeichnissen auf der lokalen Schnittstelle an Port 5900 bereit. Wer einen Zugriff von außen ermöglichen möchte, gibt hinter »-b« eine IP-Adresse an. Da Sfz aber weder eine Zugriffskontrolle noch einen verschlüsselten Transport unterstützt, ist hier Vorsicht geboten. Um einen anderen Ordner freizugeben, gibt man den vollen Pfad zu diesem beim Aufruf als letzten Parameter an; einen alternativen Port legt »-p« fest.
Im Webbrowser besticht Sfz durch Geschwindigkeit und eine übersichtliche Anzeige. Für die schnelle Datenübertragung nutzt es die HTTP-Komprimierung, die »-Z« deaktiviert. Versteckte Dateien blendet das Tool mit »-a« ein. Sfz folgt normalerweise keinen symbolischen Links, es sei denn, man fordert es mit »-L« dazu auf. Eine Logdatei schreibt das Tool nicht, sondern protokolliert seine Aktionen im Terminal.
Sfz macht eine eine prima Figur. Die fehlende Transportverschlüsselung lässt mit externen Tools wie Stunnel kompensieren, die fehlende Zugriffskontrolle gibt Abzüge in der B-Note.
Stdrename 1.3.0
Neue Dateinamen nach festen Mustern
Quelle: https://github.com/Gadiguibou/stdrename
Lizenz: GPLv3
Alternativen: Rename, Mmv
Einen Rundumschlag in Sachen Neubenennung von Dateien verspricht Stdrename. Dabei folgt das Rust-Tool vorgegebenen Mustern und schreibt die Dateinamen wahlweise in camelCase, kebab-case, PascalCase, SCREAMING_SNAKE_CASE, Sentence case, snake_case, Title Case und Train-Case. Unter Github steht ein Binary zum Download bereit. Tipps und Tricks zum Stdrename-Einsatz und Anwendungsbeispiele finden sich ebenfalls auf der Projektseite.
In der Voreinstellung verarbeitet das Tool nur Dateien, kann aber über »-D« auch Verzeichnisnamen modifizieren. Um rekursiv einen ganzen Verzeichnisbaum zu erfassen, gibt man ihn beim Aufruf hinter »-r« an. Sobald das Werkzeug seine Arbeit erledigt hat, schreibt es eine kurze Statusmeldung ins Terminal oder in die Konsole, die verrät, wie viele Objekte es in welcher Zeit umbenannt hat. Der Schalter »-q« unterdrückt das bei Bedarf.
Stdrename bietet zwei Möglichkeiten, um Objekte von der Umbenennung auszuschließen. Neben ».gitignore«-Files wertet es die Datei ».ignore« aus, in der man Dateinamen oder Muster einträgt. Einen Testlauf liefert der Schalter »–text«, der aus der Standardeingabe einliest und anzeigt, was Stdrename im Ernstfall ändern würde .
Stdrename benennt Dateien recht flexibel um, bietet aber nur acht vorgefertigte Namensmuster an. Eigene Konventionen kann man nicht definieren.
Termtodo
Minimalistische Todo-Liste
Quelle: https://github.com/mlowicki/termtodo
Lizenz: MIT
Alternativen: Todolist, Todo.txt
Termtodo ist noch so neu, dass es keine Versionsnummer trägt. Man muss den in Go geschriebenen Planer für die Shell selbst kompilieren und lädt dazu die Quellen aus dem Master-Branch von Github herunter. Ein Makefile gibt es nicht, sodass man den Build-String selbst zusammenstellen muss. Wer das Tool auf einem PC baut, lässt das Modul »blinkt_raspbian.go« weg, das auf einem RasPi für die Zusammenarbeit mit Blinkt!-Notifications sorgt.
Eine Konfiguration ist nicht erforderlich. Gibt der Benutzer beim Start keinen Pfad zur Datenbank an, schreibt Termtodo seine Einträge in die Datei ».termtodo« im aktuellen Verzeichnis. Die Datenbank nutzt das JSON-Format und lässt sich problemlos im Texteditor bearbeiten.
Nach dem Aufruf von Termtodo erscheinen eine Liste bereits vorhandener Aufgaben sowie eine Eingabeaufforderung. Über [A] nimmt das Tool neue Einträge entgegen. Jeder Punkt auf der Todo-Liste besteht aus einem Zeitstempel und einer Beschreibung. Bei den Zeitstempeln zeigt sich das Tool flexibel und akzeptiert sowohl relative (»+20m«, in 20 Minuten) als auch absolute Zeitangaben (»@11:00«). Für wiederkehrende Aufgaben gilt die Cron-Syntax – Termtodo bezeichnet solche Tasks als Trigger.
Im Hauptmenü erhält jeder Eintrag eine eindeutige Indexnummer, über man ihn löscht ([R]+) oder pausiert ([S]+). [Q] beendet das Programm. Eine Übersicht aller Trigger liefert der Befehl »tr«, die Todos listet »to« auf. Auf der Projektseite finden sich aussagekräftige Beispiele, auch für die Zeitangaben.
Termtodo ist ein noch junges Projekt, hat aber Potenzial. Gerade für den Einsatz auf einem Raspberry Pi eignet sich der Aufgabenplaner gut.
Xnotify 0.7.3
Dialogfenster gestalten
Quelle: https://github.com/phillbush/xnotify
Lizenz: MIT
Alternativen: Dialog, Zenity
Wer Skripte mit interaktiven Dialogen für den Desktop kombinieren möchte, findet inzwischen einige Tools, die das gut erledigen. Mit Xnotify gesellt sich ein weiterer, in C implementierter Kandidat hinzu. Es ist in wenigen Schritten aus dem Quellcode gebaut und sofort einsatzbereit.
Die Konfiguration erfolgt über Aufrufparameter beim Aufruf; der Text für das Dialogfenster wird über eine Pipe nach dem Xnotify-Befehl eingelesen. Ohne diesen Input öffnet Xnotify einfach ein 40 Zeichen breites Fenster am oberen rechten Bildschirmrand, das rund 10 Sekunden stehenbleibt. Der Schalter »-g« passt die Größe an, »-s« verändert die Dauer der Sichtbarkeit. Mit »-G« lässt sich der Dialog neu ausrichten, was die Angabe einer Himmelsrichtung erfordert. So platziert »-G SE« den Dialog am unteren rechten und »-G N« mittig am oberen Rand.
Xnotify kommt auch mit mehreren Monitoren zurecht, wobei »-m« den Bildschirm bestimmt. In der Voreinstellung öffnet das Tool für jede Nachricht ein neues Fenster. Gegen zugepflasterte Desktops hilft »-o«, das den Inhalt der Dialogfenster immer wieder aktualisiert und alte Meldungen überschreibt.
Bei Xnotify bleiben keine Wünsche offen. Die gut geschriebene Manpage erklärt sogar, wie man es mit einer FIFO-Warteschlange kombiniert.
Endlessh 1.1
Teergrube für SSH
Quelle: https://github.com/skeeto/endlessh
Lizenz: The Unlicense
Alternativen: SSH-Tarpit, Fail2ban
Wer einen eigenen Server mit einem SSH-Dienst betreibt, kennt das Problem: Ständig versuchen Angreifer, per Brute Force Zugriff zu erlangen. Um Portscanner und Skript-Kiddies am langen Arm verhungern zu lassen, kann eine SSH-Teergrube wie Endlessh sinnvoll sein. Das in C implementierte Werkzeug stoppt die Angreifer zwar nicht, beschäftigt sie aber über Stunden oder Tage und hält sie so eventuell von weiteren Attacken ab.
Einmal von entfernten Clients aufgebaute Verbindungen gibt das Tool einfach nicht wieder frei und liefert außerdem keine verwertbaren Informationen zurück. Es überträgt dazu das SSH-Banner beim Verbindungsaufbau extrem langsam. Einzelne Bytes sendet es mit einer Verzögerung von mehreren Hundert Millisekunden, was der Schalter »-d« weiter erhöhen kann. Die Standardgröße des Banners von 32 Zeilen streckt »-l« auf bis zu 255 Zeilen. Auch einen Parameter zum Beschränken der maximalen Anzahl von Clients (»-m«) gibt es.
Wenn man nichts anders angibt, erwartet Endlessh die Verbindungen an allen Schnittstellen auf Port 2222, sowohl über IPv4 als auch über IPv6. Ein anderer Port lässt sich über »-p« angeben. Die Schalter »-4« und »-6« wechseln auf reines IPv4 respektive IPv6. Ein Beispiel für eine Konfigurationsdatei findet sich auf Github.
Die Teergrube Endlessh nutzt das SSH-Banner und nimmt die Arbeit auf, bevor es zu einem verschlüsselten Austausch kommt. Daher hängt Endlessh nicht von Krypto-Bibliotheken ab, was es schlank und schnell macht. (Uwe**Vollbracht/hej)










