[ASP] Stats genereren van FTp server logfile

Pagina: 1
Acties:

  • StarLite
  • Registratie: Januari 2000
  • Laatst online: 17-08 23:21

StarLite

'ON ERROR RESUME NEXT

Topicstarter
Ik wil graag een ASP stats script maken voor me ftp server.
Ik zit me alleen af te vragen hoe je zoiets het beste aan kan pakken.

De layout van de logfile is als volgt:
[4] Fri 04Oct02 22:41:15 - (000056) Receiving file h:\upload\testing\testing folders\map.pdf
[4] Fri 04Oct02 22:41:16 - (000056) Received file h:\upload\testing\testing folders\map.pdf successfully (502 Kb/sec - 72488 bytes)
[4] Tue 01Oct02 15:49:12 - (000017) Receiving file h:\upload\lc4setup.exe
[4] Tue 01Oct02 15:50:41 - (000017) Error receiving file h:\upload\lc4setup.exe, aborting (998 bytes/sec - 89063 bytes, client closed data connection)
Wat is de beste manier om van deze data stats te maken¿
Denk bijv aan: totale data up/down, meeste gedownlaode file etc.
De logfile kan behoorlijk groeien [5MB is zeker geen uitzondering], dus het lijkt me als ik direct van de logfile stats ga maken dat dat behoorlijk zwaar is en dat je op het eind met gigantische arrays met data komt te zitten [max grootte etc, en neemt veel geheugen in]

Een andere optie is om de logfile in een database te proppen en daarvan stats maken. Het probleem is: hoe zorg je dat de database altijd up-to-date is en dat de data uit de logfile niet dubbel in de database komt.

Alles moet op mijn workstation draaien, dus het moet niet te zwaar zijn.

Kortom: wie heeft er tips voor mij hoe ik dit het beste aan kan pakken.

tyrips, tywreps, tiewreps, tiereps, tie raps, ripties, taiwraps, kabelbindbandjes » Tie Wraps
\o/


  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11:10

Basszje

Reisvaap!]

Per line de file inlezen ( zou het niet in een keer doen >:) ) en dan via RegExp oid de data eruit trekken en berekeningen doen :?

Ik weet niet precies wat je wil berekenen, maar veel details kunnen idd erg zwaar worden.

Anders kan je nog overwegen om het gewoon van tijd tot tijd in te lezen, in een database te gooien en in een rapport gewoon de database te gebruiken :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Ten eerste neem ik niet aan dat het super belangrijk is dat de stats pagina tot op de seconde nauwkeurig is bijgewerkt :). 1x per uur lijkt me meer dan genoeg. Zet er desnoods bij "stats tot datum tijd" oid.

Om ervoor te zorgen dat er geen dubbelen inkomen is eigenlijk heel makkelijk. Elk event heeft namelijk een tijd. Als je er voor zorgt dat je een scriptje hebt draaien (cron job oid) die alles verwerkt van het afgelopen timeframe (tussen huidige tijd en de tijd dat het scriptje de vorige keer draaide) voorkom je ook dat dingen dubbel in de DB komen. Laat desnoods het scriptje om 1 over draaien en dan alles tot het hele uur verwerken om er zeker van te zijn dat ie niks mist.

Als het eenmaal fatsoenlijk in de DB zit is het maken van de stats pagina een eitje. Dan kun je allerlij SQL functionaliteit loslaten om leuke overzichten te genereren.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • StarLite
  • Registratie: Januari 2000
  • Laatst online: 17-08 23:21

StarLite

'ON ERROR RESUME NEXT

Topicstarter
Het liefst haal ik natuurlijk zo veel mogelijk stats uit de data :)

Hoe kan ik zorgen dat elke X minuten/seconden de database geupdate word, onder linux maak je gewoon eeb cronjob, maar hoe kan dat onder windows [taakplanner¿]

En hoe voorkom ik dat hij data dubbel inleest. Als ik voor de 2e keer de database ga vullen, dan begint hij aan het begin van het bestand en komen de eerste regels er dus dubbel in tenzij ik de HELE database opnieuw ga vullen [ik update de database liever ivm load]
Om ervoor te zorgen dat er geen dubbelen inkomen is eigenlijk heel makkelijk. Elk event heeft namelijk een tijd. Als je er voor zorgt dat je een scriptje hebt draaien (cron job oid) die alles verwerkt van het afgelopen timeframe (tussen huidige tijd en de tijd dat het scriptje de vorige keer draaide) voorkom je ook dat dingen dubbel in de DB komen. Laat desnoods het scriptje om 1 over draaien en dan alles tot het hele uur verwerken om er zeker van te zijn dat ie niks mist.
Zoiets zat ik ook aan te denken, maar er zaten wat kleine probleempjes aan.
De timestamp is tot op de secnde precies, maar er kunnen meerdere dingen gebeuren in die seconde. Zeker op lanparties kunnen er makkelijk 20+ files worden verstuurd in die seconde [veel kleine files met 10 users en 8 threads per user]
Opzich niet zo heel erg, maar het zou toch wel leuk zijn als die paar files ook mee genomen kunnen worden ;)

En hoe kan ik fatsoenlijk elke x minuten een statsupdate doen onder windows aangezien windows geen fatsoenlijke cronjobs heeft afaik.

tyrips, tywreps, tiewreps, tiereps, tie raps, ripties, taiwraps, kabelbindbandjes » Tie Wraps
\o/


  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 11:10

Basszje

Reisvaap!]

Je kan idd wel schedulen iets van taakplanner en winat ( nt ) gebruiken :)

En dubbel data inlezen zou je de logfile kunnen leeggooien of controleren of de datum zoals Janoz als zei :)

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Gezien je ASP gebruikt, ga ik er ff stiekem van uit dat je IIS gebruikt :)

Wat is erop tegen op te loggen naar een ODBC-bron? Zo wordt je 'logfile' in een db geperst en kun je vervolgens de meest exotische SQL-dingen ermee doen (als het een sql-db betreft).

日本!🎌


  • StarLite
  • Registratie: Januari 2000
  • Laatst online: 17-08 23:21

StarLite

'ON ERROR RESUME NEXT

Topicstarter
_Thanatos_ schreef op 07 oktober 2002 @ 01:24:
Gezien je ASP gebruikt, ga ik er ff stiekem van uit dat je IIS gebruikt :)

Wat is erop tegen op te loggen naar een ODBC-bron? Zo wordt je 'logfile' in een db geperst en kun je vervolgens de meest exotische SQL-dingen ermee doen (als het een sql-db betreft).
Ik gebruik idd IIS als webserver, maar serv-u als ftp server en die kan volgens mij niet loggen naar een ODBC bron :?

tyrips, tywreps, tiewreps, tiereps, tie raps, ripties, taiwraps, kabelbindbandjes » Tie Wraps
\o/


Verwijderd

Overigens, misschien is het handig om je log files te laten roteren per uur, zodat je ieder uur een log file directory scant. Dan hou je in 1 tabel bij welke log files je al verwerkt hebt, zodat je alleen nieuwe gegevens verwerkt. Open een transactie, lees de logfile in, doe INSERTs voor iedere regel, INSERT de naam van de huidge logfile, en doe een COMMIT. En scan de directory net zolang todat alle files die daar staan zijn verwerkt.

HTH :)
Pagina: 1