Quicktipp: Alte Kernel-Images entsorgen

Unter Ubuntu oder dessen Derivaten wie Elementary OS häufen sich mit der Zeit alte Kernel-Images an. Dies ist insbesondere hinderlich, wenn man wie ich (noch) eine separate Boot-Partition besitzt. Mit dem folgenden Kommando kann man einfach alle Kernels außer dem aktuell laufenden entsorgen – also nach einem frischen Kernel-Update bitte erst nach einem Reboot aufrufen, weil ansonsten der neu installierte Kernel gleich wieder gelöscht werden würde:

„Quicktipp: Alte Kernel-Images entsorgen“ weiterlesen

Nginx: Statische Inhalte bereits vorkomprimiert direkt ausliefern

HTML-Seiten und andere gut komprimierbare Inhalte in komprimierter Form auszuliefern, spart Bandbreite und erhöht die Performance… üblicherweise. Leider gilt dieser Grundsatz nicht für schwache Hardware wie Embedded-ARM-Boards wie den Cubietruck, Raspberry-PI oder Banana-PI. Hier ist es sinnvoll die auszuliefernden Dateien bereits komprimiert auf der Platte abzulegen und so die Prozessorleistung nicht für die Kompression zu verschwenden.
„Nginx: Statische Inhalte bereits vorkomprimiert direkt ausliefern“ weiterlesen

BASH: Abbrechen von im Hintergrund gestarteten Skripten vermeiden

Shell-Skripte sind beliebt, weil mit wenig Aufwand auch komplexe Aufgaben erledigt werden können. Begonnen mit den Init-Skripten bis hin zu Installationsskripten werden dabei oft Dinge erledigt, bei denen ein (unbemerktes) Fehlverhalten zu sehr schwer zu findenen Problemen führt. Eine häufige Ursache ist, dass zeitaufwändige Aufgaben zwar im Hintergrund gestartet werden, aber nicht sicher gestellt ist, dass diese auch wirklich sauber beendet werden.
„BASH: Abbrechen von im Hintergrund gestarteten Skripten vermeiden“ weiterlesen

Shell: Ausgabe/Eingabeumleitung kompakt

Hier als kleiner Auffrischung/Referenz die gebräuchlichsten Ausgabe- und Eingabeumleitungen:

  • < Datei
    Datei auf Standardeingabe umleiten
  • << EOT ..... EOT
    z.B. in Shellskript, mehrzeilige Eingabe bis EOT (end of text) in Standardeingabe umleiten
  • 1> Datei oder > Datei
    Standardausgabe in Datei umleiten, neue Datei dabei erstellen
  • >> Datei
    Standardausgabe in Datei umleiten, an evtl. vorhandene Datei anhängen
  • 2> Datei
    Standardfehlerausgabe in Datei umleiten
  • 2>&1
    Standardfehlerausgabe auf Standardausgabe (Deskriptor 1) umleiten
  • Befehl1 | Befehl2
    Pipe: Standardausgabe von Befehl1 in Standardeingabe von Befehl2 umleiten

Die Standard-Dateideskriptoren sind:

  • 0 = Standardeingabe (/dev/stdin)
  • 1 = Standardausgabe (/dev/stdout)
  • 2 = Standardfehlerausgabe (/dev/stderr)