Ich betreibe seit einigen Jahren ein Webradio und muss immer mal wieder die virtuellen User (Mailweiterleitungen) und unser Mailingliste abgleichen. Es passiert immer mal wieder, das ich eine der beiden Listen vergesse upzudaten. Mit dem Serverumzug in Februar 2012 habe ich das Problem auf der Konsole angegangen und ein kleines Script dazu geschrieben. Das hier beschriebene Script ist eine kleine Abwandlung und bedarf vom Nutzer zwei Einträge:
Variablen
Script
Aufgerufen wird das Script als
virtual2mailman.sh MAILINGLISTE
Zuerst werden alle eingeschriebenen User gelöscht (remove_members) ohne eine Benachrichtigung zu schicken, bevor /etc/postfix/virtual ausgelesen, die reale Adresse ($2) rausgefiltert und an add_members übergeben wird. Soll der Alias genommen werden, so nimmt man $1 anstelle von $2.
Listing: /usr/local/bin/virtual2mailman.sh
#!/bin/sh PREFIX='' DOMAIN='' MAILINGLISTE=$1 /usr/lib/mailman/bin/remove_members -a -N -n $MAILINGLISTE grep -v "^#" /etc/postfix/virtual | grep "^$PREFIX.*@$DOMAIN" | awk -F" " '{print $2}' | sort -u | /usr/lib/mailman/bin/add_members -w n -a n -r - $MAILINGLISTE
Die Pfade sind an die jeweiligen Begebenheiten anzupassen.