Aktualisiertes Gawk liest eigenständig CSV-Dateien
Mit dem Tool Awk manipuliert man flexibel auf der Ko
Mit dem Tool Awk manipuliert man flexibel auf der Ko
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 für Android, iOS und im Web ist ein Beitrag von techgrube.de.
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.
SSL-Einstellungen von Servern untersuchen ist ein Beitrag von techgrube.de.
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: Monitoringtool für kleine Server ist ein Beitrag von techgrube.de.
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.
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.
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.
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.
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.
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.
Mit Dpigs die Größe von installierten Paketen anzeigen ist ein Beitrag von techgrube.de.
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 des Prozessors auslesen ist ein Beitrag von techgrube.de.
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.
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.
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.
Mem steht für den RAM des Systems. Die Farben haben hier folgende Bedeutung.
Swp zeigt die Auslastung des Auslagerungsspeichers an.
Die Farbgebung ist hier einfach. Rot = belegt. Mehr gibt es nicht.
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.
Gibt an wie lange das System bereits läuft. In diesem Fall 9 Tage, 17 Stunden, 7 Minuten und 34 Sekunden.
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.
Der untere Bereich ist eine Hilfestellung zur Bedienung und Anpassung von htop.
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.