Ankündigung

Einklappen
Keine Ankündigung bisher.

Apache Datei auslesen

Einklappen

Neue Werbung 2019

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

  • Apache Datei auslesen

    Hallo ihr,

    ich verwirr mal wieder mit Anfängerfragen
    Also ich hab eine Webseite mit einem Memberbereich (geschützt per htaccess). Nun würde ich gerne wissen, wer was da treibt. Soweit so gut, die Namen vom htaccess tauchen ja in der Logdatei vom Apache auf...
    Nun mein Plan in Pflicht und Kür:

    Pflicht:
    Einmal am Tag läuft ein Script, das in den Logfiles nachschaut, wie viele Dateien ein Account runtergeladen hat und ob z.B. von vielen verschiedenen IP-Adressen eingeloggt wurde etc. Und dann halt, wenn x Downloads waren ne Mail verschickt.
    Mein Problem dabei: Woher weiß ich, bzw das Script, welcher Tag in den Logfiles ist? Ja ich weiß, Datum steht drin, aber die Files sind ja irre lang, dauert das nicht ne Weile erstmal alles zu zerlegen, zu schauen welches Datum in der Zeile steht etc.. gibts dafür ne bessere Lösung?

    Kür:
    Das ganze "live" zu haben, also den tail von den Logs zu beobachten... aber keine Ahnung wie das nun gehen soll, ich vermute mit PHP gar nicht.

    Wäre für Input dankbar und nein, keine fertigen Scripte, selber basteln is der Mann. Das ist so eine Art Denksportaufgabe

    trunky

  • #2
    Wenn Du ein Script benutzt, das ohnehin turnusmäßig aufgerufen wird, kannst Du ja einfach jedesmal das Logfile umbenennen und so täglich ein neues schreiben lassen. Die Auswertung geht dann sicher fixer und ist quasi auch schon nach Datum vorsortiert.

    Gefühlsmäßig würde ich Dir für solche Aufgaben eher Perl nahelegen. Ist für Dateihandling und regExpr Parsing wirklich Sahne.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Ah ok, von Perl hab ich nun nur leider GAR keine Ahnung... aber Vorschläge waren ja erbeten.
      Stört das den Apache denn nicht, wenn ich da das Log einfach "wegnehme"? Oder muss ich dann so eine Logrotation einbauen?

      Kommentar


      • #4
        Glaub ich nicht. Logging ist doch i.A. immer APPEND OR CREATE. Notfalls schiebste ihm ne leere Datei unter.
        Guck Dir mal Perl an. Die paar Statements zum Dateihandling hast Du schnell intus. Und reguläre Ausdrücke sind da explizit Syntaxbestandteil.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar


        • #5
          Logdateien koennen sehr gross werden, pro Request eine Zeile, je nach Loglevel mehr oder weniger Bytes. Allein diese Seite hier laedt geschaetze > 50 Dateien. Das in Echtzeit auszulesen kann sehr lange dauern, selbst wenn du nur neue Requests analysierst. Vielleicht ist es einfacher, wenn du der Applikation einen Download-Counter spendierst, siehe z.B. hier:
          http://www.php.de/php-einsteiger/150...d-counter.html

          Dann kannst du auch gleich bestimmen, ob du den Download ueberhaupt erlaubst oder nicht.
          "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

          Kommentar


          • #6
            Mh ja, aber ich bin doch so kompliziert Ich habe ein Galeriesystem (Gallery2 von Menalto) und es geht um Bilder zur Ansicht.
            Deswegen wäre es schön, wenns einmal am Tag laufen würde = sehen, wer das Passwort weitergegeben hat => sperren
            Und wenns "live" passiert = blocken von Downloadprogrammen, die alles abgrasen

            Ich habe einen Bekannten von dem ich weiß, dass er so was im Einsatz hat, aber das läuft glaube ich mit Java und nur PHP-Ausgabe im Browser

            Kommentar


            • #7
              Wie willst du das live blocken, wenn du nur die Logfiles ausliest?
              "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

              Kommentar


              • #8
                Mh ja, ich dachte erst daran den Account in der htpasswd dann zu löschen, aber das würde ja nichts bringen, da er ja schon eingeloggt ist... *grübel*

                Also wie gesagt ich kenn jemand, der benutzt phpwebgallery und hat so ein Programm was das kann was ich beschrieben habe.

                Aber muss ich wohl noch viel nachdenken dürüber

                Kommentar


                • #9
                  Oder auch das Programm benutzen ..
                  "[URL="http://www.youtube.com/watch?v=yMAa_t9k2VA&feature=youtu.be&t=25s"]Mein Name ist Lohse, ich kaufe hier ein.[/URL]"

                  Kommentar


                  • #10
                    Ich mal wieder

                    Aaaalso ich bin weiter, hab schon einiges geschafft, Useranzeige, Accountnamen etc. Bin schon fast nen bissel stolz auf mich *gg*
                    Jetzt möchte ich nur nicht immer beim Aufrufen der Seite das Apachelog neu spalten (per PHP), sondern würde gerne es eben im Hintergrund splitten und dann in die datenbank schreiben was ich brauche (dann kann ich ihn meinen Dateien einfach die Datenbank abrufen).
                    Also Logdatei aufmachen, krieg ich inzwischen hin, aber woher weiß ich dann, bis wohin das PHP script die schon eingelesen hat wenn es neu startet? Löschen will ich das log nicht. Oder kann ich das irgendwie mit tail offen lassen und neue Zeilen immer gleich verarbeiten?

                    Sorry für die blöden Fragen, ihr merkt ich hab mich mit sowas noch nie beschäftigt

                    Kommentar

                    Lädt...
                    X