Mailman: In welchen Listen bin ich eigentlich?

2019-12-21
1 min read

Um in der BASH herauszufinden, in welchen Mailman–Listen man Mitglied ist, empfehle ich folgenden Einzeiler:

for LIST in $(/var/lib/mailman/bin/list_lists -b) ;do echo; echo \#$LIST ; /var/lib/mailman/bin/list_members $LIST; done | grep "#\|<e-mail-adresse"

Aber eins nach dem anderen:

/var/lib/mailman/bin/list_lists -b

Gibt eine Liste mit allen Mailinglisten aus. Die Option „-b“ sorgt dafür, dass auch wirklich nur die Namen, und nicht noch die Beschreibungen ausgegeben werden.

$(<befehl>)

Fügt die Ausgabe von genau hier in die aktuelle Kommandozeile ein. Es ist die modernere Version der „Backticks“

for LIST in <parameterliste> ;do <befehle> ; done

Führt die für jeden Wert in der aus. Dieser Wert steht den jeweiligen Kommandos in der Variable $LIST zur Verfügung

|

Übergibt die Ausgabe des vorhergehenden Kommandos (also unserer Schleife) dem nächsten Befehl (also grep)

echo; echo \#$LIST ; /var/lib/mailman/bin/list_members $LIST;

Wird innerhalb der Schleife, also für jede Mailingliste auf dem Server ausgeführt. Es wird zuerst eine Leerzeile und dann der Listenname (als Markdown–Überschrift mit „#“ vorab) ausgegeben. Anschließend werden dann alle Mitglieder dieser Mailingliste ausgegeben.

grep "#\|<e-mail-adresse>"

Gibt lediglich die Zeilen aus, in denen entweder ein Doppelkreuz „#“ (also der Listenname) oder die gesuchte enthalten ist.