Albtraum eines Linux-Sysadmins…

18. September 2008 at 21:50

Manche träumen davon, von einem Hochhaus zu fallen oder einen Flugzeugabsturz mitzuerleben. Sysadmins träumen aber anders – hier ein Albtraum, den ein Kollege hatte:

user@host:~# apt-cache show sysvinit
Package: sysvinit
Essential: yes
Priority: required
Section: admin
Installed-Size: 220
Maintainer: Debian sysvinit maintainers
Architecture: i386
Version: 2.86.ds1-38+etchnhalf.1
Depends: libc6 (>= 2.3.6-6), php5-common (= 5.2.0-8+etch11)
Pre-Depends: initscripts, sysv-rc (>= 2.86.ds1-1.2), sysvinit-utils
Filename: pool/main/s/sysvinit/sysvinit_2.86.ds1-38+etchnhalf.1_i386.deb
Size: 108090
Description: System-V-like init utilities
 This package contains programs required for booting
 a Debian system and doing basic process management.
 .
 The most important program in the package is /sbin/init.
 It is the first process started on boot and continues
 to run as process number 1 until the system halts. All
 other processes are descended from it.

Bash History mit Zeitstempel

17. September 2008 at 19:00

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.