Moin! Ich bin auf der Suche nach einem Tool, welches mir sämtliche access_logs für alle virtuellen Domains auf einem Rechner auswertet. Dabei reicht mir pro Domain eigentlich das übertragene Volumen. Sowas könnte man dann ja als Cronjob laufen lassen und sich den Output mailen lassen, oder? Für jeden Tip dankbar, Christian
Hi
Ich bin auf der Suche nach einem Tool, welches mir sämtliche access_logs für alle virtuellen Domains auf einem Rechner auswertet. Dabei reicht mir pro Domain eigentlich das übertragene Volumen. Sowas könnte man dann ja als Cronjob laufen lassen und sich den Output mailen lassen, oder?
Für jeden Tip dankbar,
das ist nicht so schwierig. ich hab mal was geschrieben... www.conf hat die virtualhosts, jeweils mit "CustomLog" Eintrag ("CustomLog /home/wm_xyz/log/access.log "combined") für andere Log-Konfig musst du was anpassen... *** #!/bin/bash conf="/etc/httpd/www.conf" log=$(grep -v ^# $conf | grep CustomLog | awk '{print $2}') for LogFile in $log ; do echo -n $LogFile": " grep $look $LogFile | awk 'BEGIN {tot=0} {tot+=$10} END \ {print tot/1024/1024 " MB"}' done *** \ = dieselbe Zeile... mag sein, dass es bessere Lösungen gibt - für mich hats gereicht... Gruss Christian
Am Mittwoch 22 August 2001 12:45 schrieb Christian Hernmarck:
Hi
Ich bin auf der Suche nach einem Tool, welches mir sämtliche access_logs für alle virtuellen Domains auf einem Rechner auswertet. Dabei reicht mir pro Domain eigentlich das übertragene Volumen. Sowas könnte man dann ja als Cronjob laufen lassen und sich den Output mailen lassen, oder?
Für jeden Tip dankbar,
das ist nicht so schwierig. ich hab mal was geschrieben...
www.conf hat die virtualhosts, jeweils mit "CustomLog" Eintrag ("CustomLog /home/wm_xyz/log/access.log "combined")
für andere Log-Konfig musst du was anpassen...
*** #!/bin/bash conf="/etc/httpd/www.conf" log=$(grep -v ^# $conf | grep CustomLog | awk '{print $2}')
Hmm, warum grep's Du denn nicht gleich aus der httpd.conf Datei?
for LogFile in $log ; do echo -n $LogFile": " grep $look $LogFile | awk 'BEGIN {tot=0} {tot+=$10} END \ {print tot/1024/1024 " MB"}' done ***
\ = dieselbe Zeile...
mag sein, dass es bessere Lösungen gibt - für mich hats gereicht...
Gruss Christian
Gruss Arne
On Don, 23 Aug 2001, Arne-Erik Martin wrote:
Am Mittwoch 22 August 2001 12:45 schrieb Christian Hernmarck:
*** #!/bin/bash conf="/etc/httpd/www.conf" log=$(grep -v ^# $conf | grep CustomLog | awk '{print $2}')
Hmm, warum grep's Du denn nicht gleich aus der httpd.conf Datei?
Macht er doch! Nur entfernt er halt erst die Kommentare... Aequivalent ist z.B.: conf="/etc/httpd/www.conf" log=`sed -n 's/^[[:space:]]*CustomLog[[:space:]]*\([^[:space:]]*\).*/\1/p' \ < $conf` (log=` ... < $conf` ist eine Zeile! Und ohne das \ zur Zeilenfortsetzung...)
mag sein, dass es bessere Lösungen gibt - für mich hats gereicht...
*g* Wie ich erstaunt feststelle geben sich die beiden Loesungen wenig, obwohl im ersten Fall 3, im letzteren nur ein Prozess aufgerufen werden... Verwendet man: log=`sed -n '/CustomLog/s/^[[:space:]]*CustomLog[[:space:]]*\([^[:space:]]*\).*/\1/p' < $conf` gewinnt man ca. 1/4tel Performance gegenueber den beiden andere Loesungen... Eleganter sieht die "Ein Prozess" Loesung aber wohl aus ;) -dnh -- 60: Virtual Reality AVI-Animation mit 16 Farben (Sebastian Kokemohr-Schmidt)
Am Donnerstag 23 August 2001 19:21 schrieb David Haller:
On Don, 23 Aug 2001, Arne-Erik Martin wrote:
Am Mittwoch 22 August 2001 12:45 schrieb Christian Hernmarck:
*** #!/bin/bash conf="/etc/httpd/www.conf" log=$(grep -v ^# $conf | grep CustomLog | awk '{print $2}')
Hmm, warum grep's Du denn nicht gleich aus der httpd.conf Datei?
Macht er doch! Nur entfernt er halt erst die Kommentare...
Wie jetzt, entweder stehe ich garade auf Grund der Hitze auf dem Schlauch oder ... Wenn ich das richtig verstehe, dann grep't er doch die Datei /etc/httpd/www.conf und nicht /etc/httpd/httpd.conf?
Aequivalent ist z.B.:
conf="/etc/httpd/www.conf" log=`sed -n 's/^[[:space:]]*CustomLog[[:space:]]*\([^[:space:]]*\).*/\1/p' \ < $conf`
(log=` ... < $conf` ist eine Zeile! Und ohne das \ zur Zeilenfortsetzung...)
mag sein, dass es bessere Lösungen gibt - für mich hats gereicht...
*g* Wie ich erstaunt feststelle geben sich die beiden Loesungen wenig, obwohl im ersten Fall 3, im letzteren nur ein Prozess aufgerufen werden...
Verwendet man:
log=`sed -n '/CustomLog/s/^[[:space:]]*CustomLog[[:space:]]*\([^[:space:]]*\).*/\1/p ' < $conf`
gewinnt man ca. 1/4tel Performance gegenueber den beiden andere Loesungen...
Eleganter sieht die "Ein Prozess" Loesung aber wohl aus ;)
-dnh
On Fre, 24 Aug 2001, Arne-Erik Martin wrote:
Am Donnerstag 23 August 2001 19:21 schrieb David Haller:
On Don, 23 Aug 2001, Arne-Erik Martin wrote:
Hmm, warum grep's Du denn nicht gleich aus der httpd.conf Datei?
Macht er doch! Nur entfernt er halt erst die Kommentare...
Wie jetzt, entweder stehe ich garade auf Grund der Hitze auf dem Schlauch oder ...
Wenn ich das richtig verstehe, dann grep't er doch die Datei /etc/httpd/www.conf und nicht /etc/httpd/httpd.conf?
*Arne-Erik mal eben unsanft vom Schlauch schubsend* Die conf kann doch jeder nennen wie's ihm lustig ist, oder? mv /etc/httpd/httpd.conf /etc/fooblabargl/yippieyeyah.fump (Der Name laesst sich AFAIK beim kompilieren festlegen... zweitens gibt's ne include Direktive...) Alternativ: a) ln -s /etc/fooblabargl/yippieyeyah.fump /etc/httpd/httpd.conf b) echo 'include /etc/fooblabargl/yippieyeyah.fump' >> /etc/httpd/httpd.conf Wo is also das Problem? Was natuerlich _nicht_ klappt, ist ohne obige Vorkehrungen... Die Datei /foo/bar/baz.conf wird natuerlich (ohne weiteres) _nicht_ vom Indianer gelesen... (waere ja noch schoener, wenn Apache erstmal alle Dateien des Systens lesen wuerde... ;) -dnh -- Der Nietzsche kennt den Woko nicht, Bei dessen Siggs einem Erbricht. [WoKo in dag°]
participants (4)
-
Arne-Erik Martin
-
Christian Hernmarck
-
Christian Lox
-
David Haller