vpopmailの全バーチャルドメイン・全メールボックスのバックアップを目的としたスクリプト。
vadddomain/vadduserなどで作成する。
※同じ環境を別のサーバにコピーする際を想定。
#! /bin/sh
PATH=$PATH:/home/vpopmail/bin
for i in `vdominfo | awk '/domain:/{print($2);}'`
do
  ISALIAS=`vdominfo $i | grep "domain:" | grep "(alias of"`
  if [ -z "$ISALIAS" ]; then
  # real domain
    # vadddomain
    vuserinfo postmaster@$i \
    | awk --assign=DOM=$i '
      /clear passwd:/{ printf("vadddomain %s %s\n",DOM,$3); }
      '
    # vadduser
    vuserinfo -D $i \
    | egrep "name:|clear passwd:" \
    | awk --assign=DOM=$i '
      /name:/{ NAME = $2; }
      /clear passwd:/{ PASS = $3; printf("vadduser %s@%s %s\n", NAME, DOM ,PASS); }
      ' \
    | grep -v "postmaster@"
    # valias
    valias -s $i \
    | awk --assign=DOM=$i '
      BEGIN { FS = " -> "; }
      { printf("valias -i \"%s\" %s\n",$2,$1);}'
  else
  # alias domain
    # vaddaliasdomain
    vdominfo $i \
    | grep domain: \
    | sed -e 's/^.*(alias of \([^\)]*\))$/\1/g' \
    | awk --assign=DOM=$i '{ printf("vaddaliasdomain %s %s\n",$2,DOM); }'
  fi
done
