bash — 19 Artikel

getopts - Argumente richtig verarbeiten

Wer PHP-Scripts im CLI mit Argumenten aufruft möchte diese sauber verarbeiten. PHP hat dafür eingebaut. Grundlegende Verwendung Kurze Optionen: erwartet ein Argument, ist ein Flag. Lange Optionen: erwartet ein Argument, ist ein Flag. Vollständiges Beispiel Aufruf Pflicht-Argumente prüfen gibt keine …

PHP CLI mit Farben und Fortschrittsanzeige

PHP im CLI-Modus ist praktisch für Wartungsscripts, Imports und Cronjobs. Mit ein bisschen ANSI-Code wird die Ausgabe übersichtlicher. Farben Verwendung Einfache Fortschrittsanzeige überschreibt die aktuelle Zeile statt eine neue anzufangen. Eingabe vom Benutzer lesen Terminal-Breite

Passwort-Generator in Bash

Ein einfacher Passwort-Generator der sicheren Zufall nutzt ist schnell gebaut. Einfachste Variante Gibt 32 zufällige Bytes als Base64-String aus. Schnell und überall verfügbar. Nur bestimmte Zeichen Für Passwörter die keine Sonderzeichen enthalten dürfen. löscht alle Zeichen die nicht im angegebenen…

Makefile fuer Serveraufgaben

Makefiles sind eigentlich für Build-Prozesse gedacht aber sie eignen sich hervorragend als Sammlung von Shortcuts für wiederkehrende Serveraufgaben. Grundaufbau erklärt dass diese Targets keine Dateien sind sondern immer ausgeführt werden sollen. Aufrufen Variablen Abhängigkeiten zwischen Targets fü…

Bash Arrays

Bash Arrays werden seltener genutzt als sie sollten. Sobald man mehrere zusammenhängende Werte in einem Script verwaltet sind sie die richtige Wahl. Array erstellen Oder einzeln befüllen. Zugriff Über ein Array iterieren Element hinzufügen Array aus Befehlsausgabe Bei Leerzeichen in Dateinamen liebe…

getopts - Argumente in Bash-Scripts parsen

Bash-Scripts mit Parametern aufzurufen ist praktisch. ist der saubere Weg um Argumente zu verarbeiten. Grundaufbau — der führende Doppelpunkt aktiviert den Silent-Error-Mode. Optionen mit Doppelpunkt dahinter (, ) erwarten ein Argument. Optionen ohne Doppelpunkt () sind Flags ohne Argument. entfernt…

inotifywait - auf Dateiänderungen reagieren

inotifywait wartet auf Änderungen im Dateisystem und reagiert sofort darauf. Praktisch um automatisch etwas auszuführen wenn eine Datei geändert, erstellt oder gelöscht wird. Installation Einfache Verwendung Auf eine einzelne Datei warten. Verzeichnis überwachen läuft dauerhaft statt nach dem ersten…

Bash-Grundlagen fuer Sysadmins

Wer regelmäßig auf Linux-Servern arbeitet kommt an Bash-Scripts nicht vorbei. Hier die Grundlagen die man kennen muss um vernünftige Scripts zu schreiben. Shebang und Exit-Codes Jedes Script beginnt mit der Shebang-Zeile. bricht das Script ab sobald ein Befehl fehlschlägt. Ohne das läuft es einfach …

find und xargs - maechtiger als man denkt

find gehört zu den Befehlen die man erstmal unterschätzt. Kombiniert mit xargs wird es richtig nützlich. Grundlagen Alle PHP-Dateien im aktuellen Verzeichnis finden. Nur in bestimmter Tiefe suchen. Dateien älter als 7 Tage. Dateien direkt löschen Vorsicht: vorher ohne prüfen was gefunden wird. Mit x…

dig und nslookup - DNS-Probleme debuggen

DNS-Probleme sind schwer zu debuggen wenn man die richtigen Werkzeuge nicht kennt. dig und nslookup sind auf jedem System dabei und reichen für die meisten Fälle. dig installieren Einfache Abfrage Zeigt den A-Record. Die wichtige Antwort steht im . Bestimmten Record-Typ abfragen Kompakte Ausgabe Gib…

Parallelisierung in Bash

Bash-Scripts laufen standardmäßig sequenziell. Mit ein paar Tricks lassen sich unabhängige Aufgaben gleichzeitig ausführen und die Laufzeit deutlich verkürzen. Hintergrundprozesse mit & startet den Befehl im Hintergrund. wartet bis alle Hintergrundprozesse fertig sind. Exit-Codes abfangen enthält di…

awk und sed - die wichtigsten Anwendungsfaelle

awk und sed sind auf jedem Linux-System dabei und extrem nützlich sobald man Textdateien oder Befehlsausgaben verarbeiten will. Hier die Fälle die ich am häufigsten brauche. sed — Text ersetzen Einfache Ersetzung in einer Datei. ändert die Datei direkt, ersetzt alle Vorkommen in einer Zeile nicht nu…

Shellshock - die Bash-Schwachstelle die das Web erschütterte

Shellshock (CVE-2014-6271) war eine Schwachstelle in Bash die seit Version 1.14 aus dem Jahr 1994 existierte — 20 Jahre unentdeckt. Betroffen war jedes System das Bash verwendete und dabei Umgebungsvariablen von außen entgegennahm. Der Bug in einem Satz Bash führte Code aus der in Umgebungsvariablen…

Regulaere Ausdruecke mit grep und sed

Reguläre Ausdrücke sind in grep, sed, awk und den meisten Programmiersprachen dieselben Grundmuster. Einmal verstanden spart man täglich Zeit. grep mit Regex Einfache Suche. Erweiterte Regex mit . Zeilen die mit einer Zahl beginnen. IP-Adressen finden. Groß- und Kleinschreibung ignorieren. Nur den T…

trap in Bash - sauberes Aufraeumen bei Abbruch

Bash-Scripts hinterlassen manchmal Müll wenn sie unerwartet abbrechen. Temporäre Dateien, Lock-Files, halb fertige Operationen. sorgt dafür dass beim Beenden immer aufgeräumt wird. Grundprinzip feuert immer — egal ob das Script normal endet, mit Fehler abbricht oder per Strg+C gestoppt wird. Mehrere…

Shellcheck - Bash-Scripts statisch analysieren

Shellcheck findet Fehler in Bash-Scripts die man selbst leicht übersieht. Falsch gesetzte Anführungszeichen, unportable Syntax, häufige Fallstricke — alles wird markiert. Installation Verwendung Beispiel-Ausgabe Jeder Hinweis hat eine SC-Nummer die man auf shellcheck.net nachschlagen kann um die Erk…

jq - JSON in der Kommandozeile verarbeiten

APIs geben JSON zurück, Konfigurationsdateien sind JSON, Logs sind JSON. jq macht es möglich das alles im Terminal zu verarbeiten ohne ein Script schreiben zu müssen. Installation Grundlegendes Formatieren JSON-Ausgabe lesbar machen. Einen bestimmten Wert holen Gibt zurück. Verschachtelte Werte. Arr…

Logdateien auswerten mit grep sort und uniq

Logs sind wertlos wenn man sie nicht auswerten kann. Grep, sort, uniq und awk sind die vier Werkzeuge die man dafür braucht. Kein Elasticsearch, kein Splunk. Grundlagen: grep Häufigste IPs finden Output: Häufigste 404-URLs Fehler der letzten Stunde Requests pro Minute PHP-Fehler gruppieren Langsame …

Virsh check and restart Script

Wir erstellen ein Bash Script um beendete Virtuelle Maschinen automatisch neuzustarten. Dazu gehen wir wie folgt vor und da sganze dauert auch keine 5Minuten um es einzurichten. platzhalter platzhalter platzhalter Cronjob eintragen