Archiv verlassen und diese Seite im Standarddesign anzeigen : einträge aus logdatei löschen
hallo alle zusammen,
ich habe mal eine kleine frage:
aus einem apache-log würde ich gern eine bestimmte ip-adresse regelmäßig löschen.
mit einem
>grep '192.168.0.25' transfer_log >> /files/my_hits
kann ich zwar schon mal diese hits trennen, aber nicht aus dem transfer_log löschen?
wie stelle ich das an?
das die 192.168.0.25 zwar quasi in eine neue datei geschrieben wird,
aber die einträge im transfer_log auch gleichzeitig rausgelöscht werden?
vielen dank für euere hilfe,
grüße,
daniel
joey.brunner
28.01.03, 10:02
hier ein vorschlag,
schreib dir ein shellskript, das die grep ausgabe in eine variable schreibt, z.b.
hinfortmitdir = `grep 192.168.0.25 transfer_log`
dann machst du einen sed, wo du das ergebnis davon durch nichts ersetzt...
sed s/$hinfortmitdir//g datei > datei
kann das jetzt gerade leider nicht testen, sollte aber gehen, aonsosten musst du noch etwas mit den escapes spielen
joey
Das ist so ein Grund, warum ich auf Linux umgestiegen bin ;-).
Original geschrieben von halla
aus einem apache-log würde ich gern eine bestimmte ip-adresse regelmäßig löschen.
mit einem
>grep '192.168.0.25' transfer_log >> /files/my_hits
kann ich zwar schon mal diese hits trennen, aber nicht aus dem transfer_log löschen?
wie stelle ich das an?
das die 192.168.0.25 zwar quasi in eine neue datei geschrieben wird,
aber die einträge im transfer_log auch gleichzeitig rausgelöscht werden?
grep -v '192\.168\.0\.25' transfer_log > transfer_log_ohne_ip
oder
sed '/192\.168\.0\.25/d' transfer_log > transfer_log_ohne_ip
-j
daaaanke !!
hat geklappt !
ha, denkste...
so ganz klappt es leider doch nicht.
ich kann sed in eine neue datei schreiben lassen,
d.h. z.B.
sed '/localhost/d' test > datei_neu
klappt ohne probleme.
in datei_neu steht danach nix mehr von localhost, alles gut.
sobald ich aber in dieselbe datei schreiben will ->
sed '/localhost/d' test
...tut sich leider gar nichts, krieg keine fehlermeldung, aber localhost steht dann immer noch in den logs...??
vielen dank für eure hilfe !!
grüße,
daniel
Original geschrieben von halla
ha, denkste...
so ganz klappt es leider doch nicht.
ich kann sed in eine neue datei schreiben lassen,
d.h. z.B.
sed '/localhost/d' test > datei_neu
klappt ohne probleme.
in datei_neu steht danach nix mehr von localhost, alles gut.
sobald ich aber in dieselbe datei schreiben will ->
sed '/localhost/d' test
...tut sich leider gar nichts, krieg keine fehlermeldung, aber localhost steht dann immer noch in den logs...??
du musst erst ein neues logfile anlegen und danach das alte mit dem neuen überschreiben:
sed '/localhost/d' test > datei_neu && mv datei_neu test
damit wird dann test überschrieben und enthält keine zeilen mehr, die localhost enthalten.
-j
bischien kompliziert...
cp log 1
sed '/localhost/d' 1>log
Original geschrieben von Linuxschrotter
bischien kompliziert...
cp log 1
sed '/localhost/d' 1>log
würde ich nicht machen. was passiert wenn bei dem cp etwas schiefgeht, bspw. kein platz mehr vorhanden?
-j
na gut
cp log 1 && \
sed '/localhost/d' 1>log
Original geschrieben von Linuxschrotter
na gut
cp log 1 && \
sed '/localhost/d' 1>log
cp ist langsamer als mv. wo ist denn der vorteil gegenüber:
sed '/localhost/d' test > datei_neu && mv datei_neu test
?
-j
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.