Butschek.de

Warnung: Diese Seite ist eine statische Kopie eines früher betriebenen Blogs. Es findet keine Aktualisierung mehr statt. Kommentare und die Suche funktionieren nicht.

Linux, Server & Co

Archive for the ‘LST’ Category

urldecode auf der Shell

leave a comment

Wer hin und wieder schon mal in einem Apache-Log die Referer durchsucht hat, kennt das Problem mit der Zeichenkodierung: Sonderzeichen werden als zweistellige hexadezimale Zeichen mit vorangestelltem Prozentzeichen dargestellt. Aus ‚Wörter mit Äh, Üh und Öh‘ wird so schnell ein ‚W%F6rter+mit+%C4h%2C+%DCh+und+%D6h‘, was für den Admin wirklich schwer zu lesen sein dürfte.

Eine ganz einfache Möglichkeit der Umwandlung bietet Perl durch die Möglichkeit, die Suchergebnisse eines regulären Ausdrucks durch eine Callback-Funktion zu schicken:

echo 'W%F6rter+mit+%C4h%2C+%DCh+und+%D6h'
  | perl -pe 's/%([A-Fa-f0-9]{2})/pack("C", hex($1))/seg'

Nur die Pluszeichen (welche für Space eingesetzt werden) bleiben bestehen, das erschwert die Lesbarkeit jedoch kaum. Falls es doch stört, einfach das Ergebnis nochmal durch ‚tr‚ schicken…

Written by Michael Butschek

September 21st, 2008 at 1:39 pm

Posted in IT,LST

Tagged with , , ,

Bash History mit Zeitstempel

3 comments

Seit Version 3 hat die Linux-Shell ‚Bash‘ ein nettes Feature: Sie kann in der History nicht nur die eingegebenen Befehle speichern, sondern auch Datum und Uhrzeit dazu.

Für mich als Systems Engineer in einem RZ eine nette Sache. Bei einem Problem kann ich zwar per ‚history‘ sehen, welches Kommando dazu führte und per ‚last‘ finde ich schnell heraus, wer meiner Kollegen wann auf dem Server war, doch helfen beide Informationen meist nichts, wenn ich nicht feststellen kann, WANN das Kommando eingegeben wurde.

Das funktioniert ganz einfach: Die Umgebungsvariable HISTTIMEFORMAT muss gesetzt sein und zwar mit dem Datumsformat gemäß strftime(3). Die Manpage verrät, dass %F das Datum und %T die Uhrzeit ist. Man muss die Variable nun nur noch im File ~/.bashrc setzen, schon wird bei jedem Befehl die Zeit gespeichert:

export HISTTIMEFORMAT='%F %T '

Wichtig ist das Leerzeichen zwischen dem %T und dem schließenden Quote. Ohne dieses gibt der Befehl ‚history‘ die Kommandos ohne Trennzeichen direkt hinter dem Datum aus.

Bedenken sollte man, dass dies weder das Manipulieren noch das Löschen der History verhindert. Man kann also damit keinen „Schutz“ bieten, sondern es nur unter Kollegen etwas einfacher machen, den richtigen Ansprechpartner schnell zu finden.

Written by Michael Butschek

September 17th, 2008 at 7:00 pm

Posted in IT,LST

Tagged with , , ,