Toon posts:

[Apache] Iets uit logs halen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

ik heb van de week de datum verkeerd ingesteld op mijn server, en nu staat er datum die VEEL verder zijn dan vandaag.

Webalizer vind dit niet echt lekker....
Weet iemand een manier om makkelijk zo'n 50 regels te verwijderen (die een datum groter hebben dan vandaag)?

  • Icey
  • Registratie: November 2001
  • Laatst online: 01-09 11:01
Openen met een text editor, selecteren, verwijderen en opslaan? of denk ik nu heel erg fout :P

Verwijderd

sed is your friend
Of eventueel kun je ook grep gebruiken (inverse match doorsturen naar nieuw bestand).

Daarnaast kun je elke fatsoenlijke texteditor gebruiken en zodoende een search doen.

[ Voor 14% gewijzigd door Verwijderd op 05-03-2004 18:02 ]


  • rvm
  • Registratie: November 2000
  • Niet online

rvm

Gaat Apache niet verder op het punt waar hij gebleven is (aangenomen dat dit over de actuele logfile gaat), waardoor je, als je een aantal regels weghaalt, een hoop lege ruimte in je logfile krijgt? Weet niet of dat effect heeft op webalizer.

  • Freezerator
  • Registratie: Januari 2000
  • Laatst online: 31-08 19:05
Search and replace?

Verwijderd

Search & destroy? >:)

Verwijderd

Topicstarter
zal eens kijken,
log is nogal ERNORM groot

Verwijderd

Daarom zijn er dus ook hulpmiddelen als sed/grep :)

  • G33rt
  • Registratie: Februari 2002
  • Laatst online: 22-06-2022
Als het maar 50 regels betreffen, en je die fout recent hebt gemaakt, lijkt het me dat die regels onderaan staan. Mocht het met grep dus niet lukken kan je altijd de file openen en zoeken naar een vage datum. De vijftig regels zullen sowieso bij elkaar staan, dus een zoek op die foute datum in een teksteditor moet ook werken :)

Verwijderd

inderdaad, met een reguliere expressie de dag/maan/jaar kan veranderen.
Daarna kan je met onderstaande code je logfile sorteren op datum zodat alles weer netjes bij elkaar staat, anders zal webalizer niet de juiste statistieken genereren:

code:
1
2
3
4
5
6
7
#!/bin/sh
if [ ! -f $1 ]; then
 echo "Usage: $0 "
 exit
fi
echo "Sorting $1"
sort -t ' ' -k 4.9,4.12n -k 4.5,4.7M -k 4.2,4.3n -k 4.14,4.15n -k 4.17,4.18n -k 4.20,4.21n $1 > $1.sorted



edit:

Als het kan dat de website 2 seconden uit de lucht gaat, kan je de reguliere expressie natuurlijk ook gewoon uitvoeren in een text-editor als textpad. Daarna de logfile weer terugzetten, sorteren op datum, apache starten en webalizer runnen.


[edit2]
Mocht je nu webalizer overnieuw willen laten draaien, vergeet dan niet de webalizer.current weg te gooien, anders zal hij verder gaan waar hij gebleven was, oftewel zal je geen verschil zien
[/edit2]

[ Voor 43% gewijzigd door Verwijderd op 05-03-2004 20:04 ]

Pagina: 1