Confixx aktualisiert Traffic-Statistiken nicht

Dieser Blog-Eintrag richtet sich an externe Administratoren, bei denen Confixx Probleme mit der Verarbeitung von Zugriffsdateien (Zugriffs-Statistiken, Traffic-Auswertung oder Logrotate) hat. Unsere Webhosting-Kunden sind hiervon nicht betroffen.

Problem: Nach dem Upgrade von Debian auf Debian Squeeze zeigt Confixx keine Traffic-Statistiken an. Auch die Web-Statistiken wie Webalyzer oder AWStats werden nicht mehr aktualisiert, außerdem wachsen die Log-Dateien (log/access_log) ständig und werden nicht mehr rotiert (bzw. in log/old/ verschoben).

Ursache: Confixx ruft zur Auswertung der Zugriffstatistiken und dem Rotieren der Log-Dateien ein eigenes Skript namens „httpdtraffik.sh“ auf. Dieses befindet sich im gleichen Ordner wie das Counterscript / Update-Script, also meist in /root/confixx oder /opt/confixx:

#!/bin/sh
# (…)
for HOME in $HOMEDIR/* ; do
USER=${HOME##$HOMEDIR/}
if ( echo -E „X$USER“ | $GREP „^X$PREFIX[0-9]\+$“ >/dev/null )  ; then
if test „$DEBUG“ = „1“; then
echo „$USER“
fi

Dieses Skript iteriert nun in einer for-Schleife über jeden Eintrag, der in $HOMEDIR (also dem Verzeichnis, in dem alle Kunden-Accounts liegen) gefunden werden kann. $HOMEDIR ist auf Debian-Systemen üblicherweise „/var/www“, bei SuSE-Systemen „/srv/www/“.

Als erstes wird versucht, in der Variable den Ordnernamen zu ersetzen, so dass nur noch der Kunden-Name übrig bleibt, welcher mit dem Kunden-Prefix verglichen wird. Es werden somit nur die Ordner verarbeitet, die auch tatsächlich mit dem User-Prefix beginnen. Wird „httpdtraffik.sh“ mit dem Parameter „DEBUG“ aufgerufen, so wird üblicherweise der gefundene „USER“ ausgegeben – seit dem Upgrade auf Debian Squeeze bleibt dies auch aus.

Während dem Upgrade wird der Anwender gefragt, ob er den Wert der Standard-Shell ändern möchte. Unter Debian Lenny und zuvor war die „bash“ („/bin/bash“) als Standard vorgegeben, während dem Upgrade wird nun empfohlen, auf die „Dash“-Shell zu wechseln. Debian aktualisiert dann den Symlink „/bin/sh“, so dass zukünftig die „dash“ verwendet wird.

Zurück zum Confixx-Problem: Konkret schlägt hier das Entfernen des Pfades aus der „USER“-Variable fehl, so dass diese Variable zwar auch mit dem User-Prefix verglichen wird, allerdings keine Übereinstimmung gefunden wird. Somit wird die gesamte Verarbeitung des User-Accounts nicht durchgeführt, auch Log-Files werden niemals rotiert.

Lösung: Um erneut wieder Zugriffs-Statistiken und kleine Log-Dateien zu erhalten, gibt es zwei Möglichkeiten, von denen die eine die andere nicht ausschließt.

  1. Anpassen des Shebangs in „httpdtraffik.sh“:
    Dieser Schritt ist die einfachste Lösung, da keine Systemänderungen vorgenommen werden. Hierfür wird in der ersten Zeile der Datei statt „#!/bin/sh“ nun „#!/bin/bash“ hinterlegt. Linux verarbeitet das Skript dann nicht mehr mit „/bin/sh“, sondern verwendet in jedem Fall die BASH (Bourne Again SHell).
    Achtung! Diese Änderung muss nach jedem Update von Confixx erneut durchgeführt werden, solange Parallels hier nicht eingreift!
  2. Anpassen von Debian Linux, so dass wieder systemweit die BASH genutzt wird:
    Nach dem Aufruf von „dpkg-reconfigure dash“ erhält der Anwender erneut die Auswahl, ob die DASH als Standard-Shell aktiviert werden soll. Wird dies verneint, verwendet Debian erneut die BASH, um das HTTP-Traffic-Skript zu verarbeiten.

 

Post navigation