ClemensBW
Registered User
Hallo, hier ein script, welches die letzten 3 Stellen von Apache logs Nullt.
Ein Danke geht an @HornOx
apacheloganonymisierer.sh
ps: den einsatz solltet ihr je nach Rechtlichem Gedanken Überdenken
(geiler Satz, oder?)
Ein Danke geht an @HornOx
apacheloganonymisierer.sh
PHP:
#!/bin/bash
#
##
### ClemensBW (09.08.2006)
### unter der GPL lizensiert (http://www.gnu.org/licenses/gpl.txt)
##
#
######## README ########
# Dieses Script anonymisiert Apache Logfiles
# Dazu muessen nur die Variablen ein bisschen angepasst werden, je ob Apache1 oder Apache2 Server
# es wird auch eine Backup Datei geschrieben, welche alle IpAdressen enthaelt, wenn dies nicht gewuenscht ist,
# einfach alles zwischen #backup start und #backup ende entfernen.
#
# Alle Anderungen werden in der "worklog" Datei vorgenommen und dann wieder in die access.log geschrieben.
#
# Wichtig: Je nach Groeße der Logs -koennte- es sein, dass ca. 2 bis 4 Sek keine Logeintraege geschrieben werden.
# Für Rückfragen: http://www.serversupportforum.de/forum/faqs-anleitungen/10174-howto-apache-logs-anonymisieren.html
##########################
######## INSTALL ########
# Datei in /etc/ moven
# CHMOD auf 755 setzen: chmod 755 /etc/apacheloganonymisierer.sh
#
# ---> Der Ordner $apachelogdir/backups muss noch per hand angelegt werden <---
#
# Script als cronjob eintragen:
#
# Mit nano /etc/crontab, dann folgendes einfuegen:
# */60 * * * * root /etc/apacheloganonymisierer.sh
#
# Mit dieser Einstellung wird alle 60min. das Log anonymisiert.
#
# Zeiten nach Bedarf Anpassen!
##########################
apachelogdir=/var/log/apache/
#zb:/var/log/apache/
apachelog=/var/log/apache/access.log
#zb: /var/log/apache/access.log
worklog=$apachelogdir/worklog
#an dieser Datei werden die Änderungen vorgenommen
#Backup start:
####date ausgabe###########
# %d = tag (31)
# %m = monat (01)
# %y = jahr (2006)
# %T = stunden (23:59:59)
###########################
backupdir=$apachelogdir/backups
#backupdir wird hier festgelegt
bakdate=`date +%d.%m.%y-%T`
#mit Zeitangabe in Stunden:
#siehe oben
host=`hostname`
#interner rechnername
echo "Packe das tar Backup file - start"
# access.log sichern, wenn kein Backup angelegt werden soll #backup start bis #backup ende entfernen
tar -cPvf $backupdir/$host"-"$bakdate.tar $apachelog
echo "Packe das tar Backup file - - done"
#Backup ende
#kopiere access.log für die bearbeitung (diese wird in "worklog" ausgeführt
cp $apachelog $apachelogdir/worklog
perl -p -e 's/^(\d+)\.(\d+)\.(\d+)\.\d+ /\1.\2.\3.000/' $apachelogdir/worklog > $apachelog
# nulle die letzten 3 Stellen der IpAdresse
rm $apachelogdir/worklog
#lösche die Arbeitsdatei
echo "Ihre Apache Logfiles wurden anonymisiert"
ps: den einsatz solltet ihr je nach Rechtlichem Gedanken Überdenken
(geiler Satz, oder?)
Last edited by a moderator: