#!/bin/bash
### START CONFIGURATION ###
DIR="/tmp/zimbra-backup";
OUTPUT="/tmp/zimbra-backup";
### END OF CONFIGURATION ###

USERS=`su - zimbra -c 'zmprov gaa'`;

### The above command work on Zimbra 5.x. If you use Zimbra 6.x, use
### USERS=`su - zimbra -c 'zmprov -l gaa'`; instead

DATE=`date +%Y%m%d`;

if [ ! -d $DIR ]; then mkdir $DIR; chown zimbra:zimbra $DIR; fi

for ACCOUNT in $USERS; do
        NAME=`echo $ACCOUNT`;
	echo "Processing mailbox $NAME backup..."
        su - zimbra -c "zmmailbox -z -m $ACCOUNT getRestURL '//?fmt=tgz' > $DIR/$NAME.tgz";
done

echo "Compressing mailbox backup, please wait..."

cd $DIR; mkdir $DATE; mv *.tgz $DATE
tar cjpf $OUTPUT/$DATE.tar.bz2 $DATE;
cd $DIR; rm -rf $DATE

echo "Zimbra mailbox backup has been completed successfully."

