Jussi Hirvi wrote:
> This is not CentOS-specific, hence OT.
>
> I need a list of all email users on my system (there are hundreds of them).
> The list could be extracted from /etc/aliases and the virtusertable.
>
> Does anyone know of a script that would do this automatically? It would have
> to
> - exclude commented-out lines (of course)
and exclude "continuation" lines (lines starting with spaces).
> - exclude duplicates
> - produce a list of usernames (or maybe unresolved email addresses for some
> users) separated by a comma
why comma? isn't LF better (one user per line)?
>
> I imagine perl would be the way to go. I haven't used perl at all myself.
>
you could start with something like
getkey()
{
files=$*
for file in $files; do
sed -e '/^[\# ]/d' -e '/^$/d' $file | \
awk -F'[: ]' '{print $1}'
done
}
getkey /etc/aliases /etc/passwd | sort|uniq > users.local
getkey yourvirtualmap > users.virtual
If you want a list of all valid email addresses, you need to append the
domains in mydestination to users.local.