Logfiles putzen
Kurze Anleitung, wie man nach einer Referrerspamattacke wieder zu sauberen Logfiles kommt:
Das Shellscript sieht so aus:
#!/bin/bash
for site in `cat /pfad/zurspammerdatei`
do
grep -v $site /pfad/zumneuenlogfile.log.new
mv /pfad/zumneuenlogfile.log.new /pfad/zumneuenlogfile.log
done
Die Erklärung:
Wir öffnen unsere Statistiken und kopieren all die Referrerspammer in eine Datei, speichern diese dann ab.
Den Pfad dorthin geben wir dann in dieser Zeile an:
for site in `cat /pfad/zurspammerdatei`
grep -v $site /pfad/zumneuenlogfile.log.new
bedeutet folgendes: Der Befehl grep schreibt nun ein neues Logfile ohne die Einträge, die vorher in der Datei gespeichert worden sind.
(grep= der Befehl
-v = nur die Zeile ausgeben, die dem regulären Ausdruck nicht entsprechen
$site = die Datei, wo wir die Spammer reingeschrieben haben
/pfad/zumneuenlogfile.log.new = der Pfad, wo die neue Datei gespeichert werden soll)
Anschliessend wird mit
mv /pfad/zumneuenlogfile.log.new /pfad/zumneuenlogfile.log
das neue, saubere Logfile, welches ja noch die Endung log.new aufweist umbenannt in .log.
Und mit
done
erlauben wir dem Script den Feierabend.
Missi