Ankündigung

Einklappen
Keine Ankündigung bisher.

logfile parsen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sclot
    hat ein Thema erstellt logfile parsen.

    logfile parsen

    ich versuch grad mein apache log durchzugehen und infos daraus zu finden...

    mein code bis jetzt:

    Code:
    <?
    $handle = fopen ("./access.log.txt", "r");
    while (!feof($handle)) {
    $buffer = fgets($handle, 4096);
    echo "
    
    buffer: ";
    echo $buffer;
    echo "
    ";
    
    $teil = split(" ",$buffer);
    if ($teil[8] != "304" && $teil[8] != "404")
    {
         	echo "\n teil9: $teil[9]
    ";
    	echo "0+teil9: ";
    	echo 0+$teil[9];
    }
    
    
    }
    fclose ($handle); 
    ?>
    also..
    er liest das file zeilenweise ein und gibt es erstmal aus...
    allerdings ohne alle 304 und 404 fehler...
    alle anderen zeilen haben hinten die trafficdaten dran.
    und diese trafficdaten möcht ich zusammenzählen...
    ich hab allerdings keinen plan wie das gehen soll

    die ausgabe sieht bei mir so aus:

    Code:
    buffer: 127.0.0.1 - - [31/Mar/2004:15:38:15 +0200] "GET / HTTP/1.1" 403 276 
    teil9: 276 
    0+teil9: 276
    
    buffer: 127.0.0.1 - - [31/Mar/2004:15:38:20 +0200] "GET /info.php HTTP/1.1" 200 34055 
    teil9: 34055 
    0+teil9: 34055
    
    buffer: 127.0.0.1 - - [31/Mar/2004:15:38:20 +0200] "GET /info.php?=PHPE9568F34-D428-11d2-A769-00AA001ACF42 HTTP/1.1" 200 2974 
    teil9: 2974 
    0+teil9: 2974
    und das halt imer so weiter 5900 zeilen lang...

    ich hoffe ihr wisst was ich von euch will :/

  • tapferesschneiderlein
    antwortet
    Zitat von Sclot
    geil.. funzt... danke...

    kannste das auch erklären?
    Häh? Was gibt's 'n da zu erklären? »+=« vielleicht?
    Code:
    $a = 13;
    $a += 2;
    // $a ist jetzt 15

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Re: logfile parsen

    Zitat von Sclot
    ich versuch grad mein apache log durchzugehen und infos daraus zu finden...

    alle anderen zeilen haben hinten die trafficdaten dran.
    und diese trafficdaten möcht ich zusammenzählen...
    ich hab allerdings keinen plan wie das gehen soll
    Nimm das:
    http://webalizer.mirror.camelnetwork.com/
    Hast hinterher eine feine bunte Statistik.

    Einen Kommentar schreiben:


  • Sclot
    antwortet
    geil.. funzt... danke...

    kannste das auch erklären?

    Einen Kommentar schreiben:


  • tapferesschneiderlein
    antwortet
    Code:
    <? 
    $handle = fopen('./access.log.txt', 'r'); 
    
    while (!feof($handle)) 
        { 
        $teil = split(' ', fgets($handle, 4096)); 
    
        if ($teil[8] != '304' && $teil[8] != '404') 
            $summe += $teil[9]; 
        } 
    fclose ($handle); 
    
    echo number_format($summe/1024/1024, 0, ',', '.');
    ?>

    Einen Kommentar schreiben:


  • Sclot
    antwortet
    Zitat von Du-weisst-schon-wer
    Zitat von Sclot
    ich will einfach nur die bytes der trafficangabe in dem log zusammenzählen

    mehr nicht!
    Oh Sorry das wusste ich nicht...
    Du musst wissen ich bin im Gendankenlesen echt nicht gut!
    Sorry!
    also..
    er liest das file zeilenweise ein und gibt es erstmal aus...
    allerdings ohne alle 304 und 404 fehler...
    alle anderen zeilen haben hinten die trafficdaten dran.
    und diese trafficdaten möcht ich zusammenzählen...
    ich hab allerdings keinen plan wie das gehen soll

    ^^ lesen! *grmpf*

    Einen Kommentar schreiben:


  • Sclot
    antwortet
    ok...
    das klappt soweit...

    jetzt sieht das so aus:

    Code:
    <?
    $handle = fopen ("./access.log.txt", "r");
    while (!feof($handle)) 
    {
     $buffer = fgets($handle, 4096);
     $teil = split(" ",$buffer);
     if ($teil[8] != "304" && $teil[8] != "404")
      {
    	echo "
    ";
    	$neuesumme = $summe += $teil[9] / 1024 / 1024; 
    	echo round($neuesumme);
      }
    }
    fclose ($handle); 
    ?>

    ich hab es gleich als MB umrechnen lassen und runden lassen.
    jetzt komt das was ich immernoch nicht hab:

    wie bekomme ich da jetzt allein nur die letzte zahl?
    weil.. er zeigt mir ja immernoch alle zahlen von allen zeilen im array an.
    ich brauche aber nur die letzte zahl wo dann drin steht wie viel alle zusammen ergeben.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Zitat von Sclot
    ich will einfach nur die bytes der trafficangabe in dem log zusammenzählen

    mehr nicht!
    Oh Sorry das wusste ich nicht...
    Du musst wissen ich bin im Gendankenlesen echt nicht gut!
    Sorry!

    Einen Kommentar schreiben:


  • tapferesschneiderlein
    antwortet
    Zahlen addieren funktioniert meistens mit +

    Code:
    <? 
    
    $handle = fopen('./access.log.txt', 'r'); 
    
    $summe = 0;
    
    while (!feof($handle)) 
        { 
        $buffer = fgets($handle, 4096); 
        echo '
    
    buffer: '. 
        echo $buffer; 
        echo '
    '; 
    
        $teil = split(' ', $buffer); 
        if ($teil[8] != '304' && $teil[8] != '404') 
            { 
                echo "\n".' teil9: '.$teil[9].'
    '; 
                echo 'summe + teil9 = neue summe: '; 
                echo $summe += $teil[9]; 
            } 
    
        } 
    
    fclose ($handle); 
    
    ?>

    Einen Kommentar schreiben:


  • Sclot
    antwortet
    nein... schaut doch mal das script an.. die zahlen hab ich doch nun schon alle rausgefischt...
    ich muss sie nur noch zusammenzählen.
    das is das einzige problem.. die addition die ganzen zahlen

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    reg exp? evtl. vorher mit explode an den "-" trennen und dann nach zahlen suchen, die zeichen in "" vor sich stehen haben und auch zeichen zwischen [].
    wär so meine lösung.

    Einen Kommentar schreiben:


  • Sclot
    antwortet
    ich will einfach nur die bytes der trafficangabe in dem log zusammenzählen

    mehr nicht!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    ich hoffe ihr wisst was ich von euch will :/
    Offengesagt: Nein!

    Nun wenn dir 5000 und nen paar gequeschte Zeile zu lang sind dann würd ich das Log in Tage einteilen um das zu Zerstückeln und die Lesezeit zu verkürzen!
    http://www.cevinet.ch/support/faq/#32

    Einen Kommentar schreiben:

Lädt...
X