Kleiner Unterbruch

Da wir von FreeBSD 5.5 5.4-p18 auf 6.2-p5 aktualisierten, gab es heute einen Unterbruch.

Irgendwie verschluckte er sich beim ersten Reboot an der Zeit (touch konnte im Single-User Mode nicht gefunden werden). Nach einem Reboot bauten wir die Welt nochmal neu und nach ein paar Stunden “mergemaster” läuft alles wieder wie vorher:

Merci vielmal an Beat (Kapitel 16 in FreeBSD 6.2 Serverkonfiguration [PDF]).

We’ll be gone (update)

Heute ist hier ein hoffentlich reibungsloser Austausch von Festplatten geplant. Entweder gehts kurz, oder dann lang.

Update: Nach einem lustigen Abend mit Beat im RZ und ein bisschen “atacontrol addspare ar0 ad3” und “atacontrol rebuild ar0” und solchem Zeugs schien das ganze eigentlich ein ziemliches Kinderspiel. So sind nun 2 neue Platten in der Kiste. Mal noch schauen, wie man dem Array beibringen kann, dass es jetzt eigentlich grössere Platten nutzen könnte…

Und Merci an Tom fürs nine-Shirt u.a. – Foto folgt dann irgendwann 😉

Status-Codes aus Logfile parsen

Es kann interessant sein, die von einem Webserver ausgelieferten HTTP-Status-Codes zu analysieren. Diese werden im Access-Log des Webservers abgelegt. Hier ein Versuch.

 wc -l 2007-02-access.log 
103509 2007-02-access.log

Das Logfile hat also etwas mehr als 100’000 Zeilen.

 /usr/bin/time awk '{print $10}' < 2007-02-access.log 
| egrep '200|204|206|301|302|304|403|404|503'
| sort -nr
| uniq -c
| sort -nr

Anmerkung: Abhängig vom LogFormat liegen die Status-Codes in einer andern Spalte, “$10” gibt diese an. Falls mal etwas anderes in der jeweiligen Spalte zu liegen kommen sollte, macht es Sinn, die interessanten Status-Codes zu “egrep‘”en.

Das gibt mir etwa folgenden Output:

        0.66 real
78261 200
11616 304
9278 301
3580 404
481 302
168 206
32 204
17 503

Ausführungszeit ist 2/3 Sekunde, was doch ziemlich hoch ist. Hat jemand eine schnellere Version?

Ein neues Jail erstellen

In ein paar Schritten zur 1:1 Kopie einer Jail

  1. cpdup /usr/jail/svn.sequenz.ch /usr/jail/learn.sequenz.ch
  2. mount_devfs devfs /usr/jail/learn.sequenz.ch/dev
  3. ifconfig em0 inet alias 217.150.245.51/32
  4. mount_nullfs /usr/ports/ /usr/jail/learn.sequenz.ch/usr/ports/
  5. vi /usr/jail/learn.sequenz.ch/etc/rc.conf (hostname=learn)
  6. vi /usr/jail/learn.sequenz.ch/etc/ssh/sshd_config (ListenAddress 217.150.245.51)
  7. vi /usr/jail/learn.sequenz.ch/etc/motd
  8. jail /usr/jail/learn.sequenz.ch learn.sequenz.ch 217.150.245.51 /bin/sh /etc/rc

Nun sollte man schon einloggen können. Nicht vergessen, es bestehen schon Benutzerdaten Software ist bereits installiert. MTA muss auch noch konfiguriert werden. Den Apache bspw. in der rc.conf disablen oder ebenfalls neu konfigurieren…