Ankündigung

Einklappen
Keine Ankündigung bisher.

logfile parsen

Einklappen

Neue Werbung 2019

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

  • 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 :/


  • #2
    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

    Kommentar


    • #3
      ich will einfach nur die bytes der trafficangabe in dem log zusammenzählen

      mehr nicht!

      Kommentar


      • #4
        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.

        Kommentar


        • #5
          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

          Kommentar


          • #6
            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); 
            
            ?>

            Kommentar


            • #7
              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!

              Kommentar


              • #8
                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.

                Kommentar


                • #9
                  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*

                  Kommentar


                  • #10
                    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, ',', '.');
                    ?>

                    Kommentar


                    • #11
                      geil.. funzt... danke...

                      kannste das auch erklären?

                      Kommentar


                      • #12
                        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.

                        Kommentar


                        • #13
                          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

                          Kommentar

                          Lädt...
                          X