如何获取 cPanel 中每个用户的电子邮件帐户数量?

如何获取 cPanel 中每个用户的电子邮件帐户数量?

这个问题类似:查找 cPanel 服务器中的电子邮件帐户总数我很想对此发表评论,但因为声誉问题而无法发表评论。

这行代码可以很好地获得全部的所有电子邮件帐户的数量。

for i in `cat /etc/localdomains`; do grep -E ^$i: /etc/userdomains ; done | sed 's/://g' | awk '{ system("cat /home/"$2"/etc/"$1"/passwd") }' 2>/dev/null | wc -l

我如何修改它以返回计数用户帐号?

答案1

好吧,这是我的第一个 bash 脚本,但它能够满足我的需要。

创建文件:pico num_email_accounts.sh

复制并粘贴以下脚本。

#!/bin/bash

#Return count of email accounts per cPanel user

output="User\tDomain\t# Email Accounts\n\n------------------\t---------------------------------------\t--------------------";

for i in `cat /etc/localdomains`; do
    line=`grep -E ^$i: /etc/userdomains`;
    if [ ! -z "$line" -a "$line" != " " ]; then
            re="^([^-]+): (.*)$";
            [[ $line =~ $re ]] && domain="${BASH_REMATCH[1]}" && user="${BASH_REMATCH[2]}";
            wc="`wc -l "/home/"$user"/etc/"$domain"/passwd" 2>/dev/null`";
            re="^([^-]+) (.*)$";
            [[ $wc =~ $re ]] && count="${BASH_REMATCH[1]}";
            output="$output\n$user\t$domain\t$count";
    fi
done

echo -ne $output | column -s $'\t' -t;

保存并退出。使文件可执行:chmod +x num_email_accounts.sh

运行脚本:bash ./num_email_accounts.sh

相关内容