In your SSH, as root, run:
Code: Select all
mcedit script-name.sh
Code: Select all
#!/bin/bash
for user in $(grep '@' /etc/passwd |cut -f1 -d:); do
if [ ! -f "/usr/local/vesta/data/users/$user/user.conf" ]; then
continue;
fi
FULLNAME=$(v-list-user $user | grep 'FULL NAME:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
EMAIL=$(v-list-user $user | grep 'EMAIL:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
PACKAGE=$(v-list-user $user | grep 'PACKAGE:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
DISK=$(v-list-user $user | grep 'DISK:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
BANDWIDTH=$(v-list-user $user | grep 'BANDWIDTH:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
SUSPENDED=$(v-list-user $user | grep 'SUSPENDED:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
if [ "$SUSPENDED" = "yes" ]; then
continue;
fi
echo "USER: $user = [$FULLNAME] | [$EMAIL] | [PACK: $PACKAGE] | [DISK: $DISK] | [BNDT: $BANDWIDTH]"
for domain in $(/usr/local/vesta/bin/v-list-web-domains $user plain |cut -f 1); do
site=$domain
aip=$(dig +short $site)
ns=$(dig -t ns +short $site | tr '\n' ' ')
mx=$(dig -t mx +short $site | head -n 1 | awk '{ print $2 }' | sed "s|\.$||g")
mxip=$(dig +short $mx | tr '\n' ',')
echo "=== Domain: $domain"
echo " A Record: $aip"
echo " NS Records: $ns"
echo " MX Record: $mx ($mxip)"
echo ""
done
echo ""
done
Code: Select all
chmod a+x script-name.sh
Code: Select all
./script-name.sh
If you want to view user or domain data without DNS data, use this code for faster processing:
Code: Select all
#!/bin/bash
for user in $(grep '@' /etc/passwd |cut -f1 -d:); do
if [ ! -f "/usr/local/vesta/data/users/$user/user.conf" ]; then
continue;
fi
FULLNAME=$(v-list-user $user | grep 'FULL NAME:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
EMAIL=$(v-list-user $user | grep 'EMAIL:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
PACKAGE=$(v-list-user $user | grep 'PACKAGE:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
DISK=$(v-list-user $user | grep 'DISK:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
BANDWIDTH=$(v-list-user $user | grep 'BANDWIDTH:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
SUSPENDED=$(v-list-user $user | grep 'SUSPENDED:' | cut -d ":" -f2- | sed -re 's/^[[:blank:]]+|[[:blank:]]+$//g' -e 's/[[:blank:]]+/ /g')
if [ "$SUSPENDED" = "yes" ]; then
continue;
fi
echo "USER: $user = [$FULLNAME] | [$EMAIL] | [PACK: $PACKAGE] | [DISK: $DISK] | [BNDT: $BANDWIDTH]"
for domain in $(/usr/local/vesta/bin/v-list-web-domains $user plain |cut -f 1); do
echo "=== $domain"
done
echo ""
echo ""
done