Bash: Anleitungen und Praxiswissen | Seite 8 | mironsoft Blog
Bash
-
15.09.2025
SSH in Automatisierungs-Skripten richtig zu verwenden ist anspruchsvoller als es aussieht: StrictHostKeyChecking zu deaktivieren löst das Problem des ersten Verbindungsaufbaus — aber öffnet gleichzeitig Man-in-the-Middle-Angriffe. Dieser Artikel zeigt, wie SSH-Automatisierung ohne Sicherheitskompromisse funktioniert.
-
14.09.2025
aws s3 sync überträgt nur geänderte Dateien zwischen einem lokalen Verzeichnis und einem S3-Bucket und ist damit das Standardwerkzeug für Deployment- und Backup-Skripte in Bash. Richtig eingesetzt spart es Zeit und Bandbreite, falsch eingesetzt löscht das --delete-Flag ganze Bucket-Inhalte in Sekunden. Dieser Artikel zeigt die Muster, die den Unterschied machen.
-
10.09.2025
Instabile APIs antworten mal mit einem kurzen Timeout, mal mit einem 503, mal einfach gar nicht. curl bringt mit --retry, --retry-delay und --retry-connrefused eingebautes Wiederholungsverhalten mit, das viele dieser Fälle abdeckt, aber erst das Verständnis von Idempotenz entscheidet, ob ein Retry überhaupt sicher ist, ohne Daten doppelt zu verarbeiten.
-
09.09.2025
Ein Bash-Skript, das curl, ssh oder mysqldump aufruft, laesst sich nicht sinnvoll testen, ohne echte Netzwerkverbindungen oder Datenbanken bei jedem Testlauf anzufassen. Externe Kommandos mocken loest genau dieses Problem: das PATH-Override-Pattern und gezielte Funktionsueberschreibung machen Bash-Tests deterministisch, schnell und unabhaengig von echter Infrastruktur.
-
08.09.2025
Eine rohe diff-Ausgabe ist technisch korrekt, aber schwer zu lesen, weil Zeilen mit + und minus optisch kaum auffallen. Dieser Artikel zeigt, wie eine farbige Diff-Ausgabe in Bash-Skripten entsteht, von fertigen Werkzeugen wie colordiff und git diff bis zur eigenen ANSI-Einfärbung mit awk für Sonderfälle, die kein Standardwerkzeug abdeckt.
-
04.09.2025
Wer sed nur zeilenweise mit s/alt/neu/ einsetzt, stoesst bei Config-Bloecken, XML-Fragmenten und mehrzeiligen Log-Eintraegen schnell an Grenzen. Hold Space und Pattern Space geben sed die Faehigkeit, mehrere Zeilen gleichzeitig zu betrachten und gezielt als zusammenhaengenden Block zu ersetzen, ganz ohne Perl oder Python.
-
02.09.2025
Eine Named Pipe (FIFO) verhält sich im Dateisystem wie eine Datei, funktioniert aber wie eine klassische Pipe: Daten fließen direkt von einem Schreiber zu einem Leser, ohne jemals auf der Platte zu landen. Wer FIFOs richtig einsetzt, entkoppelt unabhängige Prozesse, baut Logging-Multiplexer und vermeidet Race Conditions, die bei Zwischendateien fast unvermeidlich sind.
-
24.08.2025
Ein Heredoc erlaubt es, mehrzeiligen Text direkt im Skript unterzubringen, ohne jede Zeile einzeln zu escapen. Wer aber den Unterschied zwischen <<EOF, <<-EOF und einer gequoteten Delimiter-Zeile nicht kennt, produziert Konfigurationsdateien mit ungewollt expandierten Variablen oder falscher Einrueckung. Dieser Artikel zeigt die Muster, die in echten Deployment-Skripten tatsaechlich zaehlen.
-
21.08.2025
Bash-Skripte, die ohne Locking in Cron-Jobs oder Deployment-Pipelines laufen, riskieren Race Conditions bei Mehrfachausführung. PID-Files sind verbreitet, aber nicht atomar. flock bietet kernel-gestützte Sperren, die auch bei Crashes automatisch freigegeben werden – das richtige Werkzeug für zuverlässiges Locking in Shell-Skripten.
-
20.08.2025
Wer eigene Bash-Skripte mit Kommandozeilen-Optionen ausstattet, landet schnell bei getopts, dem eingebauten Bash-Werkzeug für Kurzoptionen. Es ist überall verfügbar, portabel und ohne externe Abhängigkeiten nutzbar, unterstützt aber keine Langoptionen wie --verbose. Wer beides braucht, kombiniert getopts mit einer manuellen case-Schleife und baut sich so ein Parameter-Parsing, das sich wie ein echtes CLI-Tool anfühlt.