Bash: Anleitungen und Praxiswissen | Seite 2 | mironsoft Blog
Bash
-
12.04.2026
shUnit2 bringt den klassischen xUnit-Stil mit assertEquals und setUp/tearDown in die Bash-Welt, bats-core beschreibt Tests dagegen als lesbare @test-Blöcke im BDD-Stil. Beide Frameworks lösen dasselbe Grundproblem, aber mit unterschiedlicher Syntax, unterschiedlicher CI-Integration und unterschiedlichen Stärken je nach Projektgröße.
-
08.04.2026
Klassisches wait blockiert, bis alle gestarteten Hintergrundjobs fertig sind, was die Parallelität auf ganze Batches begrenzt. wait -n wartet stattdessen auf den ersten Job, der fertig wird, egal welcher, und macht damit Worker-Pools mit konstant hoher Auslastung erst wirklich praktikabel, ohne auf externe Werkzeuge wie GNU Parallel zurückgreifen zu müssen.
-
06.04.2026
Ein Cronjob, der laenger laeuft als das geplante Intervall, startet still ein zweites Mal, obwohl der erste Lauf noch nicht fertig ist. Zwei parallele Datenbank-Exports, zwei gleichzeitige Backup-Prozesse oder zwei sich gegenseitig blockierende Import-Skripte sind die Folge, oft ohne sofort sichtbare Fehlermeldung. Dieser Artikel zeigt, wie flock ueberlappende Cronjobs zuverlaessig verhindert, sowohl direkt in der Crontab als auch innerhalb von Skripten, und wo die Grenzen einfacherer Locking-Ansaetze liegen.
-
04.04.2026
Quoting in Bash ist das meistunterschätzte Thema der Shell-Programmierung. Word Splitting und Globbing brechen Skripte auf eine Art, die beim Schreiben nicht sichtbar ist — aber auf Produktionsdaten mit Leerzeichen, Sonderzeichen und Wildcards zuverlässig auftritt. Dieser Artikel deckt alle häufigen Quoting-Fehler auf und zeigt die korrekten Alternativen.
-
03.04.2026
Ein Skript, das bei der ersten 429-Antwort einfach abbricht, ist keine Automatisierung, sondern eine tickende Zeitbombe. Rate-limitierte API-Abfragen mit Retry in Bash respektieren Retry-After-Header, nutzen exponentielles Backoff mit Jitter und liefern zuverlässige Ergebnisse, auch bei strengen API-Limits.
-
02.04.2026
Magento-Wartungsskripte in Bash machen den Unterschied zwischen manuellem Deploy-Chaos und zuverlässiger Automatisierung. Die richtige Sequenz aus bin/magento-Kommandos, rsync-Backups, Cache-Flush und Log-Rotation verhindert Fehler, die entstehen, wenn Deploy-Schritte manuell in der falschen Reihenfolge ausgeführt werden.
-
24.03.2026
Wenn ein Shell-Skript durch Ctrl+C, kill oder einen Fehler beendet wird, bleiben ohne Signal-Handling Lockfiles, temporäre Dateien und halbfertige Datenbankoperationen zurück. Das Bash-Builtin trap registriert Handler für SIGINT, SIGTERM, SIGPIPE, ERR und EXIT — und macht Cleanup zu einem zuverlässigen, geordneten Prozess.
-
16.03.2026
Shell-Skripte, die mit Netzwerkdiensten, APIs und externen Systemen interagieren, scheitern ohne Retry-Logik beim ersten transienten Fehler. Exponentielles Backoff mit Jitter, der timeout-Befehl und klare Max-Retry-Grenzen machen Shell-Skripte resilient — ohne dass ein Operator nachts manuell neu starten muss.
-
16.03.2026
Ein Dependency Update Checker sammelt regelmäßig den Stand veralteter Pakete über mehrere Repositories hinweg und macht Sicherheitslücken sichtbar, bevor sie in einem Audit unangenehm auffallen. Dieser Artikel zeigt, wie ein solcher Dependency Update Checker composer outdated und npm outdated per jq auswertet, Versionssprünge klassifiziert und die Ergebnisse automatisch als Report verschickt.
-
09.03.2026
Die Restricted Shell rbash blockiert cd, PATH-Änderungen und den Aufruf von Programmen über einen Pfad mit Slash. Das reicht für einfache, gutartige Einschränkungen wie einen SFTP-Ersatz, ist aber mit dokumentierten Techniken relativ leicht zu umgehen. Wer rbash einsetzt, sollte genau wissen, was es abdeckt und was zusätzlich abgesichert werden muss.