Elektronische Post abholen mit Getmail6 6.18.10, System-Performance testen mit Hyperfine 1.15.0, Datendurchsatz im Blick mit Iotop 1.22, Mini-Webserver Miniserve 0.22.0 aufsetzen, Verbindungen tunneln mit Sslh 2.0-rc1, Konsolenprogramme im Browser nutzen mit Ttyd 1.7.1.
Briefzusteller
Mit Getmail6 6.18.10 holen Sie komfortabel Ihre elektronische Post ab.
Mit dem Python-basierten Tool Getmail holen Sie die elektronische Post bequem beim Provider ab und übergeben Sie zur Verteilung im heimischen Netz an Tools wie Postfix und Dovecot. Die Software eignet sich nicht nur für das manuelle Herunterladen der Nachrichten, sondern lässt sich auch in eigene Skripte integrieren. Wollen Sie die abgeholten Mails nicht direkt mit MDAs wie Postfix oder Exim weiterverteilen, legt Getmail sie alternativ im Mbox- oder Maildir-Format ab.
Das manuelle Abholen von Nachrichten übernimmt getmail_fetch, dem Sie dazu beim Aufruf die Zugangsdaten des E-Mail-Kontos sowie Adresse und Port des Mailservers übergeben. Über den Parameter -a klappt auch eine Authentifizierung via APOP, zur verschlüsselten Kommunikation geben Sie -s an. Damit keine Nachricht verloren geht, löscht Getmail die Nachrichten auf dem Quellserver nicht eigenmächtig. Sie müssen dazu explizit den Schalter -d angeben. Eine Weiterleitung via Pipe an Drittprogramme ist möglich. Um das Abholen der Nachrichten zu automatisieren, nutzen Sie das Binary getmail. Dessen Konfiguration erfolgt über eine Datei, die Sie beim Aufruf mit -r übergeben. Eine Beispielkonfiguration findet sich im Quellarchiv. Im retriever-Block hinterlegen Sie Zugangs- und Verbindungsdaten zum Quellserver. Der destination-Block legt fest, wo Getmail die empfangenen Nachrichten lagert. Im options-Block geben Sie an, ob das Tool Nachrichten löschen soll und wo das Logging erfolgt.
In Sachen Funktionsumfang kann Getmail mit dem bewährten Fetchmail mithalten. Viele Distributionen stellen ältere Versionen von Getmail (Python 2) und Getmail6 (Python 3) bereit. Das aktuelle Release korrigiert eine Reihe von Fehlern, Sie müssen es allerdings selbst kompilieren.
Messlatte
Mit Hyperfine 1.15.0 messen Sie die Rechnerleistung beim Ausführen von Programmen.
Das in Rust geschriebene Hyperfine nimmt im Gegensatz zu anderen Benchmark-Lösungen keine Lasttests einzelner Komponenten wie CPU oder RAM vor, sondern ermittelt die Ausführungsdauer vorgegebener Programme. In den Repos der meisten gängigen Distributionen fehlt das Tool noch, die Github-Projektseite hält aber zahlreiche Binärpakete bereit.
Den Namen des zu prüfenden Programms übergeben Sie Hyperfine beim Aufruf. Für die fragliche Software erforderliche Parameter geben Sie ebenfalls mit an, wobei Sie den kompletten Programmaufruf in Anführungszeichen setzen. Bei Programmen mit sehr kurzer Laufzeit führen Sie Hyperfine vor der eigentlichen Messung mehrmals mit dem Parameter --warmup aus. Dann läuft der Benchmark ohne Messung durch, was für ein Auffüllen der System-Caches und damit für aussagekräftigere Messwerte sorgt. Alternativ geben Sie Hyperfine den Parameter --prepare mit. Dann startet es mehrfach andere Programme, um eine Grundlast auf dem System zu simulieren. Über --max-runs, --min-runs und --runs legen Sie bei Bedarf die Anzahl der Durchläufe fest, standardmäßig wiederholt Hyperfine die Messschleife zehn Mal.
Das Erscheinungsbild der Ausgabe im Terminal beeinflussen Sie mit dem Parameter --style. Der Style basic liefert eine monochrome Ansicht ohne interaktive Elemente, mit full erhalten Sie den kompletten Funktionsumfang. Zum Archivieren der Ausgabe weisen Sie Hyperfine über einen der --export-*-Parameter an, die Resultate in eine Datei zu schreiben, wobei das Tool die Formate Asciidoc, CSV, JSON und Markdown unterstützt. Der besseren Übersicht zuliebe zeigt Hyperfine die Konsolenausgaben des ausgeführten Tools nicht mit an. Falls Sie diese benötigen, müssen Sie den Benchmark mit dem Schalter --show-output starten.
Flusspegel
Mithilfe vom Iotop 1.22 behalten Sie den Datendurchsatz jederzeit im Blick.
Arbeitet der Rechner nur schnell genug, interessieren sich die wenigsten Anwender für die aktuelle I/O-Auslastung. Schwächelt das System jedoch, ist ein Werkzeug gefragt, das bei der Performance-Analyse hilft. Das C-basierte Iotop zeigt in einer Top-ähnlichen Ansicht den aktuellen Datendurchsatz der einzelnen Prozesse. Viele Distributionen führen bereits eine ältere Version des Tools in ihren Paketquellen. Die aktuelle Version korrigiert jedoch nicht nur Fehler, sondern bietet auch neue Funktionen, wie beispielsweise die Suche mit regulären Ausdrücken. Außerdem kommt nur das aktuelle Release mit den neuesten Kernel-Versionen optimal zurecht. Iotop lässt sich unkompliziert aus den Quellen übersetzen, benötigt für die Ausführung jedoch Administratorrechte.
Ohne weitere Parameter aufgerufen, zeigt Iotop für jeden Prozess dessen ID, die Priorität, den Eigentümer und den Schreib-Lese-Durchsatz in Byte/s an. Eine Anzeige in KByte/s erhalten Sie mit -k. Am Ende jeder Zeile steht der Prozessname. So erkennen Sie mit einem Blick, welche Prozesse gerade den meisten Datenverkehr generieren oder nur geringen Datendurchsatz liefern. Mit dem Parameter -x aufgerufen, markiert Iotop gestorbene Prozesse, der Parameter -e blendet sie sogar ganz aus. Auch andere Spalten wie Priorität oder Benutzer lassen sich explizit ausblenden, was umfangreiche Ausgaben übersichtlicher macht. Mit -p und -u beschränken Sie die Anzeige auf bestimmte Prozess-IDs oder Benutzer. Iotop aktualisiert seine Ausgabe sekündlich, mit -d geben Sie ein anderes Intervall vor. Iotop bietet noch weitere Parameter, um die Ausgabe an die eigenen Wünsche anzupassen. Eine Online-Hilfe erhalten Sie mit -h, außerdem liefert das Tool eine aussagekräftige Manpage mit.
Webzwerg
Der kompakte Mini-Webserver Miniserve 0.22.0 ermöglicht auch HTTPS-Verbindungen.
Für viele Einsatzfälle genügt als Webserver eine kompakte HTTP-Engine wie das Rust-basierte Miniserve, für das Sie Binärpakete und Anwendungsbeispiele auf der Github-Projektseite finden. Die Online-Hilfe rufen Sie über den Parameter -h ab. Starten Sie Miniserve ohne weitere Parameter, liefert es den Inhalt des aktuellen Verzeichnisses aus, wozu es auf der lokalen Schnittstelle an Port 8080 auf eingehende Anfragen lauscht. Andere Interfaces und Ports legen Sie über die Aufrufparameter -i und -p fest, wobei Sie mehrere Schnittstellen angeben dürfen. Um den Zugriff zu begrenzen, definieren Sie mit -a einen oder mehrere Benutzernamen samt Passwort. Damit Letzteres in der Konsole nicht im Klartext erscheint, übergeben Sie es als SHA-Hash.
Miniserve präsentiert den Inhalt eines Verzeichnisses in einem hellen Farbschema, mit den Parametern -c und -d geben Sie bei Bedarf ein anderes Schema vor. Während der Nutzung lässt sich das Farbschema zudem auf der Seite im Browser anpassen. Versteckte Dateien zeigt Miniserve nur, wenn Sie ihm den Parameter -H mitgeben, -P unterbindet die Anzeige symbolischer Links. Zur verschlüsselten Kommunikation übergeben Sie Miniserve mit --tls-cert und --tls-key ein Zertifikat und einen Schlüssel. Der Aufrufparameter -u erlaubt auch einen Upload von Dateien. Mit den Parametern -z und -g offeriert Miniserve die Möglichkeit, ganze Verzeichnisse per Mausklick als komprimiertes Archiv herunterzuladen.
Damit bietet Miniserve eine einfache Möglichkeit, im lokalen Netz schnell und unkompliziert Verzeichnisse oder statische Seiten bereitzustellen. Das Tool benötigt kaum Ressourcen und beherrscht auch die verschlüsselte Kommunikation, lediglich die Benutzerverwaltung ist etwas rudimentär.
Tunnelbauer
Mit Sslh 2.0-rc1 tunneln Sie auf einfache Weise eingehende Verbindungen.
Wer regelmäßig WLAN-Hotspots nutzt, kennt das Problem: Viele Anbieter erlauben nur Verbindungen zu Standard-HTTP-Ports wie 80, 443 oder 8080, was Zugriffe via SSH oder VPN deutlich erschwert. Hier hilft das Wrapper-Tool Sslh weiter, das auf dem Zielsystem eingehende Verbindungen auf einem beliebigen Port entgegennimmt. Es erkennt anhand des verwendeten Protokolls, um welche Art Daten es sich handelt, und leitet die Anfrage dann an den passenden Dienst weiter. Dabei unterscheidet Sslh nicht nur zwischen SSL und SSH, sondern unterstützt auch XMPP, Tinc und OpenVPN, nicht jedoch Wireguard. Das jeweilige Protokoll ermittelt Sslh anhand der ersten übertragenen Bytes. Stößt es auf ein ihm unbekanntes Protokoll, reicht es die Verbindung standardmäßig an den SSH-Dienst durch. Sie haben aber die Möglichkeit, mittels regulärer Ausdrücke neue Start-Bytes anzugeben und damit andere Protokolle einzubinden. Das klappt jedoch nicht bei allen Protokollen – hier geht Probieren über Studieren.
Sie konfigurieren Sslh über Aufrufparameter oder eine Konfigurationsdatei, eine Beispiel dafür findet sich im Quellarchiv. Die Konfiguration umfasst neben den globalen Einstellungen am Anfang der Datei die Abschnitte listen und protocols. Im ersten legen Sie fest, auf welchen Ports und Interfaces Sslh Verbindungen annimmt. Unter protocols definieren Sie die unterstützten Protokolle und zugehörigen Weiterleitungen. Zur Integration in das jeweilige Init-System liefert das Archiv auch Beispielskripte für die Integration in SysVinit und Systemd mit. Ältere Versionen von Sslh finden Sie in den Repositories zahlreicher Distributionen. Benötigen Sie aktuelle Funktionen wie beispielsweise UDP-Unterstützung, müssen Sie die neueste Version selbst aus den Quellen übersetzen.
Fernseher
Dank Ttyd 1.7.1 nutzen Sie Konsolenprogramme auf Remote-Rechnern bequem im Browser.
Wer viele Server oder VMs ohne Bildschirm und Tastatur betreibt, muss deren Ausgaben clever umlenken oder via SSH auf die Systeme zugreifen. Dank Ttyd genügt auch ein simpler Webbrowser, um die Ausgabe von Konsolenprogrammen remote zu betrachten. Auf der Github-Seite des Projekts finden Binärpakete der aktuellen Version, die Konfiguration erfolgt über Aufrufparameter. Um die Ausgabe eines Konsolenprogramms via HTTP bereitzustellen, übergeben Sie Ttyd den Pfad dazu beim Start. Einen Webserver benötigen Sie nicht, da Ttyd über eine eigene Web-Engine verfügt. Standardmäßig wartet es am Port 7681 der lokalen Schnittstelle auf eingehende Verbindungen, andere Interfaces oder Ports geben Sie via -u und -p an.
Der Dienst führt die jeweiligen Programme mit den Rechten des Ttyd-Aufrufers aus, solange Sie nicht beim Aufruf über -u und -g einen bestimmten User oder eine Gruppe angeben. In der interaktiven Konsole im Browser übergeben Sie der laufenden Anwendung Eingaben oder Tastenkürzel, der Parameter --readonly unterbindet Interaktionen. Um den Zugang zu beschränken, legen Sie über -c eine Kombination aus Benutzernamen und Passwort fest, eine Mehrfachnennung ist dabei nicht möglich. Zur verschlüsselten Kommunikation gibt es die Parameter --ssl, -ssl-cert, --ssl-key und --ssl-ca.
Die Anzahl paralleler Verbindungen begrenzen Sie mit -m. Zur Fehlersuche beschränken Sie Ttyd auf eine einzelne Verbindung, es beendet sich dann nach deren Trennung. Über weitere Parameter können Sie IPv6 aktivieren oder das Arbeitsverzeichnis für Kindprozesse vorgeben. Eine Online-Hilfe erhalten Sie mit -h, auf der Projektseite stehen einige Anwendungsbeispiele bereit. (jlu)










