#!/usr/athena/bin/perl # # Anonymize the afs incremental logs. # Usage: # afs-incr-anonymize.pl < /moira/moira.log my $uid = 1; my $gid = 1; my %uhash = (); my %ghash = (); while (<>) { next unless /(... .. ..:..:..) afs.incr: imembers (\d+) (\d+) (\S+) (USER|KERBEROS) (\S+) \d \d \d \d (\d)/; my $time = $1; my $beforec = $2; my $afterc = $3; my $lname = $4; my $mname = $6; my $isgrp = $7; next unless $isgrp; my $op = 'unknown'; $op = 'add' if $beforec == 0 and $afterc > 0; $op = 'del' if $afterc == 0 and $beforec > 0; $mname = $1 if $mname =~ /([^@]+)\@ATHENA.MIT.EDU/; my $lid = HideList($lname); my $mid = HideUser($mname); print "$time: list $lid $op member $mid\n"; } sub HideUser { my ($name) = @_; $uhash{$name} = $uid++ unless defined $uhash{$name}; return $uhash{$name}; } sub HideList { my ($name) = @_; $ghash{$name} = $gid++ unless defined $ghash{$name}; return $ghash{$name}; }