Lese-Ansicht

Es gibt neue verfügbare Artikel. Klicken Sie, um die Seite zu aktualisieren.

Linux Command Library für Android, iOS und im Web

Von: Niko

Die Möglichkeiten die die Linux-Kommandozeile bietet sind nahezu unbegrenzt. Es existieren unendlich viele Tools und Befehle und nahezu unendlich viele Möglichkeiten diese zu kombinieren und zu verknüpfen.

Natürlich merkt man sich all das, was man im Alltag verwendet. Aber Funktionen die man nur selten verwendet vergisst man auch leicht. In diesem Fall durchsuche ich die History nach einem Parameter an den ich mich noch erinnere. Sofern der Befehl aber nicht mehr in der History zu finden ist, geht die Sucherei los.

Wenn man nicht gerade beruflich den ganzen Tag mit der Kommandozeile arbeitet, so kennt man deren Möglichkeiten höchstwahrscheinlich nur zum Teil. Jedenfalls geht es mir so. Ich entdecke laufend, mit jedem neuen Problem und jeder neuen Lösung neue Möglichkeiten der Linux-Kommandozeile.

Egal ob man nun etwas sucht, oder einfach nur lernen und stöbern möchte, die Linux Command Library (http://linuxcommandlibrary.com) ist eine tolle Anlaufstelle.

Die Linux Command Library ist unterteilt in drei Kategorien. Commands, Basic und Tips.

In der Kategorie Commands findet man eine riesige Liste mit Befehlen. Ein Klick auf den Befehl zeigt die Manpage des dazugehörigen Tools, ergänzt um ein praktisches TLDR mit den gängigsten Optionen.

Die Kategorie Basic zeigt weitere Unterkategorien an. Beispielsweise System Information, Files/Folders, Network, SSH und viele mehr. Ein Klick auf die Unterkategorie listet passende Befehle und Tools auf. Gerade die Kategorie Basic lädt zum Stöbern ein.

Dann gibt es noch die allgemeine und recht kurze Kategorie Tips. Hier finden sich allgemeine Tipps und Hinweise, beispielsweise zur Verkettung von Befehlen.

Die Linux Command Library gibt es nicht nur im Web, sondern auch als App für Android un iOS. Die App ist zwar Open Source und der Quellcode auf Github, trotzdem scheint es die App für Android nur über Google Play zu geben. Für das iPhone und iPad ist die Linux Command Library logischerweise nur über den App-Store verfügbar.

Der Vorteil der Apps ist, dass diese auch offline funktionieren. Ansonsten funktioniert die Webseite auch ganz hervorragend im Webbrowser auf dem Smartphone.

Zur Linux Command Library im Web

Zur Linux Command Library App für Android

Zur Linux Command Library App für iOS

Linux Command Library Webseite

Linux Command Library für Android, iOS und im Web ist ein Beitrag von techgrube.de.

SSL-Einstellungen von Servern untersuchen

Von: Niko

Um die SSL-Konfiguration eines Webservers zu untersuchen ist SSL Labs von Qualis oft die erste Wahl. Allerdings verwenden nicht nur Webserver SSL, bzw. TLS. Und nicht jeder möchte unbedingt externe Onlinetools für jede Aufgabe verwenden.

Das Linux Magazin stellt in jeder Ausgabe kleine und praktische Tools vor und immer wieder finden sich darunter nette Helfer für den Alltag. In Ausgabe 03/2020 findet testssl.sh Erwähnung.

Testssl.sh ist ein tolles Tool zum prüfen der SSL-Konfiguration. Es läuft lokal auf der Kommandozeile und erzeugt ähnlich übersichtliche und leicht verständliche Reports wie SSL Lab. Außerdem werden verschiedene Protokolle unterstützt, so dass nicht nur Webserver, sondern beispielsweise auch Mailserver getestet werden können.

Das Skript kann direkt von Github unter https://github.com/drwetter/testssl.sh heruntergeladen werden und funktioniert direkt, ohne Installation.

Ein Aufruf von „./testssl.sh https://example.de“ prüft die SSL-Einstellungen einer Webseite mit den Standardeinstellungen.

Ein Aufruf des Skripts ohne irgendwelche Parameter zeigt eine Liste mit verfügbaren Optionen und Schaltern. Damit können bestimmte Test gewählt werden, oder auch Zugangsdaten für eine via HTTP Basic Auth versperrte Seite.

Die Ergebnisse der einzelnen Tests werden übersichtlich aufbereitet im Terminal ausgegeben. Alternativ kann man die Ergebnisse auch in eine Datei schreiben lassen. Hierfür wird eine Vielzahl an Formaten unterstützt, wie z.b. Text, HTML, CSV, und andere.

testssh.sh Report

SSL-Einstellungen von Servern untersuchen ist ein Beitrag von techgrube.de.

Monitorix: Monitoringtool für kleine Server

Von: Niko

Wenn man einen Server betreibt – und sei es nur ein Raspberry Pi – dann interessiert man sich wahrscheinlich auch dafür wie dieser ausgelastet ist und ob alle Dienste durchgehend funktionieren. Wo Tools wie Grafana oder Munin übertrieben sind, kann Monitorix punkten.

Monitorix ist Open Source, die Entwicklung des Projekts kann man auf Github verfolgen. Fertige Installationspakete für die gängigen Distributionen findet man auf der Downloadseite des Projekts. Seit Buster ist Monitorix auch in den Debian Paketquellen enthalten und kann damit auch auf dem Raspberry Pi mit Raspbian mit einem einfachen sudo apt install monitorix installiert werden.

Monitorix ist in Perl geschrieben und bringt seinen eigenen Webserver mit, der standardmäßig über Port 8080 unter http://localhost:8080/monitorix erreichbar ist und optional mit einem Passwortschutz versehen werden kann.

Für die schnelle Installation und Einrichtung eines Monitoringtools auf dem Homeserver oder Raspberry Pi ist das sicher eine brauchbare Lösung. Wer dem eingebauten Webserver nicht traut, der kann Monitorx auch über einen der bekannten Webserver erreichbar machen.

Apache und lighthttpd können mit mod_cgi den Perl-Code von Monitorix direkt ausführen. Vorschläge für eine entsprechende Serverkonfiguration liefert Monitorix im docs-Verzeichnis mit.

Alternativ kann man Apache oder Nginx als Proxy vor den eingebauten Webserver schalten. Den Zugriff auf den eingebauten Webserver sollte man dann in der Konfigurationsdatei unter /etc/monitorix/monitorix.conf auf die lokale IP-Adresse beschränken und/oder den Zugriff von außen durch Firewallregeln verbieten.

Untenstehende Konfiguration verwende ich um einen NGINX als Proxy vor den Monitorix-Webserver zu setzen und den Zugang mit einem Passwort zu sichern.

    ## Monitorix start
    location /monitorix {
        auth_basic "Restricted";
        auth_basic_user_file /path/to/auth-basic/monitorix.htpasswd;

        include proxy_params;
        proxy_pass              http://127.0.0.1:8080/monitorix;
        allow           127.0.0.0/8;

    location ~ ^/monitorix/(.+\.png)$ {
        alias /var/lib/monitorix/www/$1;
        }
    }
    ## Monitorix end

Monitorix sammelt aus einer Vielzahl an Quellen Daten und bereitet diese zu ansprechenden Graphen auf. Die Liste der unterstützten Datenquellen kann man auf der Webseite unter Features ansehen, die Liste ist wirklich sehr lang. So unterstützt Monitorix auch das Auswerten verschiedener Raspberry Pi Sensoren und kann so u.a. den Verlauf der Kerntemperatur und Taktfrequenz auswerten. Teilweise müssen diese aber erst in der Konfigurationsdatei aktiviert werden.

Auch das Erstellen von Emailreports und Alarmmeldungen, wenn z.B. die load average einen bestimmten Wert übersteigt oder der Speicherplatz zu Neige geht. Natürlich stößt ein ausschließlich lokal installiertes Monitoringtool hier an seine Grenzen. Fällt das System aus, kann es auch keine Warnungen mehr versenden, so dass der Ausfall im Zweifel unbemerkt bleibt.

Wenn man aber bestimmte Daten wie z.B. die Systemauslastung, die Zugriffe auf Webserver und Datenbank im Tagesverlauf visualisieren möchte, ist Monitorix eine Lösung die schnell installiert und eingerichtet ist.

Monitorix Grafiken

Monitorix: Monitoringtool für kleine Server ist ein Beitrag von techgrube.de.

Bootzeit mit Systemd analysieren

Von: Niko
Systemd Analyze Beitrag

Systemd wird häufig kritisiert, weil es größer und komplexer als bisherige Init-Systeme ist. Dafür bringt Systemd aber auch eine ganze Reihe an Tools zur Fehlerbehebung und Systemanalyse mit.

Eines davon ist systemd-analyze, mit dem sich der Bootvorgang des Systems darstellen und analysieren lässt. Die Ausgabe kann dabei textbasiert auf der Kommandozeile erfolgen, oder auch als svg-Grafik exportiert werden.

Bootvorgang mit systemd-analyze untersuchen

Ein simpler Aufruf von

systemd-analyze

zeigt eine Übersicht, welche Systembestandteile wie lange zum booten benötigen. Damit erhält man folgende Ausgabe.

Sofern das Betriebssystem auf einem Computer mit UEFI installiert ist, bekommt man auch die Startzeit des UEFI (firmware) präsentiert. Anschließend wird die Startzeit des Bootloaders ausgegeben (loader). Dass diese bei mir mit knapp 32 Sekunden angegeben ist, liegt (denke ich) an der Wartezeit im Grub Auswahlbildschirm. Anschließend werden die Startzeiten der systemnahen Komponenten (kernel) und der Benutzerumgebung (userland) angegeben.

Eine genauere Ausgabe erhält man mit dem Befehl

systemd-analyze blame

Damit erhält man eine Auflistung aller beim booten gestarteten Dienste, sortiert nach ihrer Startzeit. Damit lassen sich Dienste, die das starten verzögern schnell identifizieren.

Ausgabe von systemd-analyze blame

Außerdem lässt sich die Ausgabe auch als SVG-Grafik exportieren. Damit erhält man noch detailliertere Ergebnisse. der Export erfolgt mit

systemd-analyze plot > boot.svg

Allerdings ist die exportierte Grafik ziemlich groß, so dass man viel scrollen muss um diese zu analysieren. Horizontal wird dabei die Startzeit in Sekunden angegeben. Vertikal werden die einzelnen Dienste aufgelistet.

Ausgabe von systemd-analyze als SVG-Grafik

Die Ausgaben von systemd-analyze sind nicht nur interessant, sondern ermöglichen auch, auf den ersten Blick zu erkennen, warum der Bootvorgang so lange dauert. Dienste, die den Bootvorgang verlangsamen lassen sich damit direkt identifizieren, wo ansonsten möglicherweise eine langwierige Fehlersuche oder Analyse notwendig wäre.

Bootzeit mit Systemd analysieren ist ein Beitrag von techgrube.de.

Mit Dpigs die Größe von installierten Paketen anzeigen

Von: Niko
dpigs Beitragsbild

Als einen großen Vorteil von Linux-Systemen gegenüber Windows habe ich immer die Paketmanager empfunden. Schnell und einfach lässt sich darüber Software installieren und updaten, ohne auf Downloads von irgendwelchen Webseiten zurückgreifen zu müssen.

Genau so schnell wie man eine Software installieren kann, so schnell kann man auch vergessen dass sie installiert ist. Wenn irgendwann der Speicherplatz knapp wird, kann es interessant sein welche Pakete am meisten Platz auf dem Datenträger verbrauchen.

Speicherplatzverbrauch von installieren Pakete unter Debian/Ubuntu/Mint anzeigen

Die Antwort darauf kann das Kommandozeilentool dpigs aus dem Paket debian-goodies liefern.

Wenn man dpigs ohne zusätzliche Parameter aufruft, werden die zehn Speicherhungrigsten Programme aufgelistet. Der Speicherplatzverbrauch wird in Bytes vor dem Paketnamen angezeigt.

Mit der Option -n kann die Liste verlängert werden. Der Befehl “dpigs -n 20” listet 20 Programme auf.

Um die Ausgabe besser lesbar zu machen, kann man die Option -H verwenden. Damit werden die Speicherplatzangaben in Megabyte und Kilobyte angegeben.

Mit dem Befehl

dpigs -n 30 -H

werden die 30 installierten Pakete aufgelistet, die am meisten Speicherplatz verbrauchen. Die Dateigröße wird dabei im menschenlesbaren Format ausgegeben.

dpigs Ausgabe

Mit Dpigs die Größe von installierten Paketen anzeigen ist ein Beitrag von techgrube.de.

Raspberry Pi Temperatur des Prozessors auslesen

Von: Niko
Raspberry Pi Temeratur auslesen Beitragsbild

Der SoC des Raspberry Pi kann bei starker Nutzung sehr heiß werden. Wenn man ihn mit dem Finger berührt kann die Temperatur des Chips doch unangenehm hoch werden.

Ich wollte daher wissen wie hoch die Temperatur des Chips tatsächlich ist und habe nach einer einfachen Möglichkeit gesucht die Temperatur auszulesen.

Erfreulicherweise bringt Raspbian bereits ein Tool mit, mit welchem man die Temperatur und viele weitere Daten des Systems auslesen kann. Das Tool hört auf den Namen vcgencmd. Unter https://github.com/nezticle/RaspberryPi-BuildRoot/wiki/VideoCore-Tools findet man unter der Überschrift “vcgencmd Commands “eine schöne Übersicht über die Möglichkeiten die das Tool bietet.

Die Temperatur lässt sich mit folgendem Befehl auslesen.

vcgencmd measure_temp

Raspberry Pi Temperatur auslesen


 

Raspberry Pi Temperatur des Prozessors auslesen ist ein Beitrag von techgrube.de.

htop – laufende Prozesse und Systemressourcen im Blick

Von: Niko
Htop Beitragsbild

Vor einiger Zeit habe ich mich im Artikel TOP – Ein Standardprogramm zum Anzeigen von Prozessen und Systemresourcen mit dem Ressourcenmonitor und Prozessmanager top auseinandergesetzt. Da top in der Regel standardmäßig vorinstalliert ist, schadet es nicht sich damit ein bisschen auseinander zu setzen.

Genau wie ich werden die meisten von euch wahrscheinlich eher htop einsetzen. Htop lässt sich mit seiner ncurses-Oberfläche konfortabler bedienen und ist außerdem grafisch ansprechender und übersichtlicher gestaltet. Ein guter Grund sich also auch mit htop etwas genauer zu beschäftigen.

Nach dem Aufruf zeigt einem htop eine Ansicht die standardmäßig etwa so aussieht.

Htop Übersicht

Der Aufbau ist dreigeteilt. Im oberen Bereich findet sich eine Übersicht über die Auslastung des Systems sowie einige Daten zur Anzahl der laufenden Prozesse, der Uptime und der Load average. Der mittlere Bereich besteht aus einer Liste mit Prozessen. Der untere Bereich eine Übersicht der Shortcuts, mit denen sich htop bedienen lässt.

Auf einem Desktopsystem mit Mausunterstützung lassen sich die einzelnen Menüpunkte auch mit der Maus aufrufen.

Bereich 1: Die Systemauslastung

Htop Bereich 1

1 – Die Auslastung der Prozessorkerne.

Hier wird die Anzahl der Prozessorkerne angezeigt. Bei einem Prozessor mit Hyperthreading verdoppelt sich die hier angezeigte Anzahl der Kerne gegenüber den physisch vorhandenen Kernen. Der Auslastungsbalken ist farbig unterteilt und hat folgende Bedeutung.

Htop Farben CPU Bar

  • Blau: Auslastung durch Prozesse mit niedriger Priorität
  • Grün: Auslastung durch Prozesse mit normaler Priorität
  • Rot: Auslastung durch den Kernel des Betriebssystems
  • Türkis: Auslastung durch Virtualisierung/Steal Time. Hierbei handelt es sich um Zeit, in der eine virtuelle CPU darauf wartet dass der Hypervisor ihr Zeit auf der richtigen CPU einräumt.

2 – Auslastung von RAM und Swap

Mem steht für den RAM des Systems. Die Farben haben hier folgende Bedeutung.

Htop Farben Memory

  • Used zeigt den von Programmen belegten Hauptspeicher an.
  • In buffers/cache werden Informationen vorgehalten die schon einmal vom System berechnet und verwendet wurden. Sollten die selben Informationen erneut benötigt werden müssen sie nicht neu berechnet werden sondern können aus dem Buffer gelesen werden. Wenn genug Speicher zur Verfügung steht dient dies der Beschleunigung des Systems. Wenn der Speicherplatz knapp wird kann der Buffer/Cache geleert werden und der Speicherplatz steht anderen Programmen zur Verfügung.

Swp zeigt die Auslastung des Auslagerungsspeichers an.

Htop Farben Swap Bar

Die Farbgebung ist hier einfach. Rot = belegt. Mehr gibt es nicht.

3 – Tasks

  • 46 (die erste Zahl) gibt die Anzahl der gestarteten Prozesse an.
  • 98 thr zeigt die Anzahl der Threads, also Ausführungsstränge, die zu den 46 Prozessen gehören.
  • 1 running ist die Anzahl der Prozesse die gerade Daten verarbeiten, oder in der Warteschlange stehen um Daten zu verarbeiten.

4 – Load Average

load average: 0,02, 0,05, 0,00 gibt die Load Average  für die letzte Minute, die letzten 5 Minuten und die letzten 15 Minuten an. Load Average gibt die durchschnittliche Systemlast an und darf nicht mit der Prozessorauslastung verwechselt werden. Sie kann eher mit einer Warteschlange für Aufgaben verglichen werden, die vom Prozessor abgearbeitet werden müssen. So kann evtl. die Prozessorauslastung sehr niedrig sein, die Load Average jedoch sehr hoch weil die Festplatte ausgelastet ist und nicht in der Lage ist die angeforderten Daten schnell genug zu liefern. Bei einer Load Average von null stehen alle Systemresourcen zur Verfügung. Steigt die Auslastung des Systems, dann steigt auch die Load Average an, wobei es nach oben keine Grenze gibt. Bis zu welchem Wert ein System zuverlässig arbeitet ist abhängig von den Systemresourcen, insbesondere davon wie stark die CPU ausgelastet ist und wie schnell die Festplatte die angeforderten Daten liefern kann.

5 – Uptime

Gibt an wie lange das System bereits läuft. In diesem Fall 9 Tage, 17 Stunden, 7 Minuten und 34 Sekunden.

Bereich 2 – Die Prozesse

Htop Bereich 2 die Prozesse

Der mittlere Bereich listet alle aktiven Prozesse auf und zeigt an welche Systemressourcen diese belegen. Standardmäßig ist die Liste nach CPU-Nutzung sortiert. Die Sortierung kann jedoch angepasst werden. Bei einem System mit Mausunterstützung kann man einfach auf den gewünschten Punkt in der grünen Leiste klicken. Also beispielsweise MEM% um nach Speicherverbrauch zu sortieren. Auf einem System ohne Maus kann die Sortierung über die Taste F6 erfolgen.

Die einzelnen Spalten geben folgende Informationen aus.

  • PID: Die Prozess-ID
  • USER: Der Name des Benutzers der den Prozess gestartet hat.
  • PRI: Die Prozesspriorität wie sie vom Kernel gesehen wird. Standardwert ist 20.
  • NI: Nice Wert zur Anpassung der Priorität durch den User. Der Nice Wert reicht von 19 (niedrige Priorität) bis -20 (hohe Priorität).
  • VIRT: Virtueller Speicher enthält allen Code, Daten und Shared-Libraries, Seiten (Speicher Blöcke) die ausgelagert wurden, sowie Seiten für die eine Nutzung geplant wurde, die derzeit aber noch nicht genutzt werden. VIRT ist somit sehr viel höher als der tatsächlich genutzte Arbeitsspeicher.
  • RES: (resident) Anteil der im physischen Speicher liegt, und nicht ausgelagert wurde. Auch hier kann es zu Überschneidungen kommen, wenn mehrere Programme die gleichen Bibliotheken verwenden. Somit kann auch die Summe von RES höher sein als der tatsächlich belegte Speicher.
  • SHR: (shared) gibt den Speicherplatz an der evtl mit anderen Programmen geteilt wird.
    Der tatsächlich von einem Prozess verwendete Hauptspeicher liegt also irgendwo zwischen RES und RES-SHR, abhängig davon wie viele Prozesse diese gemeinsam genutzten Bibliotheken nutzen.
  • S: Status des Prozesses. Es stehen folgende Status zur Verfügung: ‘D’ = uninterruptible sleep, ‘R’ = running, ‘S’ = sleeping, ‘T’ = traced or stopped, ‘Z’ = zombie.
  • CPU%: Prozentsatz der CPU-Zeit, die gerade von diesem Prozess verwendet wird.
  • MEM%: Prozentsatz des Hauptspeichers den der Prozess belegt. Basierend auf RES.
  • TIME+: Prozessorzeit die der Prozess seit seinem Start genutzt hat in Minuten:Sekunden.Hundertstel Sekunden.
  • Command: Der vollständige Befehl der ausgeführt wird.

Bereich 3 – Tastatur-Shortcuts

Der untere Bereich ist eine Hilfestellung zur Bedienung und Anpassung von htop.

Htop Bereich 3 Keyboard Shortcuts

  • F1 Hilfe: Mit einem Druck auf die F1-Taste öffnet sich eine kurze Hilfeseite von htop. Hier werden vor allem die verschiedenen Tastenkombinationen beschrieben, mit denen htop bedient werden kann.
  • F2 Setup: Htop lässt sich sehr umfangreich Anpassen. Die Anpassungen reichem von der Änderung des Farbschemas, bis hin zum kompletten Neuaufbau der einzelnen Bereiche. So kann beispielsweise im oberen Bereich anstatt der Auslastung der einzelnen CPU-Kerne eine Durchschnittsanzeige eingeblendet werden, oder es kann die aktuelle Uhrzeit oder der Hostname eingeblendet werden.Die Spalten im mittleren Bereich können komplett neu aufgebaut werden. So kann Beispielsweise die Lese- und Schreibrate auf die Datenträger eingeblendet werden. Außerdem lässt sich das Design der Anzeigen verändern.
    Htop AnpassungenHtop Anpassungen
  • F3 Search: Mit F3 kann htop nach Usernamen, Prozessnamen usw. durchsucht werden.
  • F4 Filter: Die Anzeige kann gefiltert werden, so das nicht relevante Prozesse ausgeblendet werden.
  • F5 Tree: Anstatt einer einzelnen Zeile pro Prozess wird ein Prozessbaum angezeigt. Hiermit wird dargestellt welche Prozesse aufeinander aufbauen.
    Htop Prozesstree
  • F6 Sort: Die Anzeige kann nach einzelnen Spalten sortiert werden. Beispielsweise nach CPU-Auslastung, Speicherplatzverbrauch oder I/O.
  • F7 Nice-: Der Nice-Wert kann verringert werden um dem Prozess eine höhere Priorität zu geben (nur Root darf die Prozesspriorität erhöhen)
  • F8 Nice+: Erhöht den Nice-Wert und verringert damit die Prozesspriorität. Dies darf von jedem Nutzer vorgenommen werden.
  • F9 Kill: Zeigt eine Liste mit Signalen die an den Prozess gesendet werden können. Standardmäßig ausgewählt ist SIGTERM zum ordentlichen Beenden von Prozessen.

Schluss

Wer auch nur gelegentlich mit der Kommandozeile von Linux arbeitet kommt früher oder später auch mit htop in Berührung. So ging es natürlich auch mir. Allerdings habe ich mich jahrelang nicht mit dem so häufig eingesetzten Programm befasst. Htop ist schnell aufgerufen und zeigt auf den ersten Blick mit seiner graphischen Darstellung die Systemauslastung an. Dafür habe ich htop genutzt, für mehr nicht.

Wie umfangreich sich htop anpassen lässt und dass sich damit auch Lese- und Schreibzugriffe auf die Datenträger darstellen lassen war mir nicht klar. Hierzu habe ich immer iotop genutzt. Das htop eine Suchfunktion hat war mir zwar bekannt, genutzt habe ich sie aber irgendwie nie. Erst beim schreiben dieses Beitrags habe ich auch mit der Suchfunktion gespielt und entdeckt, wie komfortabel sich htop wirklich bedienen lässt.

Höchst wahrscheinlich werde ich htop in Zukunft noch häufiger einsetzen als bisher.

htop – laufende Prozesse und Systemressourcen im Blick ist ein Beitrag von techgrube.de.

❌