From b56abec7326195d98370e92735dfaa94cf7997f3 Mon Sep 17 00:00:00 2001 From: Matt Taggart <taggart@riseup.net> Date: Fri, 14 Jun 2019 17:18:54 -0700 Subject: [PATCH] new script to detect bulk adding --- tools/bulkdetect | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 tools/bulkdetect diff --git a/tools/bulkdetect b/tools/bulkdetect new file mode 100755 index 0000000..f86d13c --- /dev/null +++ b/tools/bulkdetect @@ -0,0 +1,45 @@ +#!/usr/bin/perl -w +# bulkdetect - spot owners/lists bulk adding lots of subscribers +# taggart 2019-06 + +$log='/var/log/sympa/wwsympa.log'; + +open(LOG, "$log") or die "cannot open log\n"; + +while (<LOG>) { + chomp; + if ( m/.*\[user (.*)\] \[list (.*)\] main::do_add\(\) do_add:(.+)/ ) { + #print "$1 $2 $3\n"; + # hash key is owner:list, value is number of attempts to add + $result{"$1:$2"}++; + } +} + +format Foo = +@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @>>>>>> +$owner, $list $count +. + +# set output format +$~= 'Foo'; + +# print header +$owner = 'Owner adding'; +$list = 'List'; +$count = 'Add'; +write; + +foreach $key ( sort { $result{$b} <=> $result{$a} } keys %result) { + ($owner,$list) = split /:/,$key; + $count = $result{$key}; + write; +} + +## Notes +#if ( m/.*\[user (.*)\] \[list (.*)\] main::do_add\(\) do_add: (.*)/ ) { +# do_add sometimes returns the following things, might be interesting to look for +# already subscriber +# no email +# incorrect email +# may not add + -- GitLab