For backup mailbox, i am usually using zmmailbox command who has been provided by Zimbra. The command usually will backup all mailbox on the users. But in this case, i want to backup mailbox daily, weekly, monthly or by certain time/date. For to do that, i could using the simple script and execute every night by crontab.
# Make file backup-mailbox.sh in /srv directory
1.vi /srv/backup-mailbox.sh
Fill with the following line
##!/bin/bash
clear
## Backup Format
FORMAT=tgz
## Backup location
ZBACKUP=/srv/backup/
## Folder name for backup and using date
DATE=`date +"%d%m%y"`
## Backup location separate by date
ZDUMPDIR=$ZBACKUP/$DATE
## zmmailbox location
ZMBOX=/opt/zimbra/bin/zmmailbox
### Backup Option ###
## Based on few day ago until today, example 7 days ago
#HARI=`date --date='7 days ago' +"%m/%d/%Y"`
#query="&query=after:$HARI"
## Based on certain date , example 21 Jan 2015.
#query="&query=date:01/21/2015"
## Based from/to certain date. Example Backup Mailbox before 21 Jan 2015 and after 10 Jan 2015
#query="&query=after:01/10/2015 before:01/21/2015"
if [ ! -d $ZDUMPDIR ]; then
mkdir -p $ZDUMPDIR
fi
## Looping Account Zimbra
for account in `su - zimbra -c 'zmprov -l gaa | sort'`
do
echo "Processing mailbox $account backup..."
$ZMBOX -z -m $account getRestURL "//?fmt=${FORMAT}$query" > $ZDUMPDIR/$account.${FORMAT}
done
echo "Zimbra Mailbox backup has been completed successfully."
Note : The above script has 3 method backup. First backup by few days ago. Second backup by certain date and third backup based on from/to certain date. Don’t forget to remove # 1 of 3 method what do you want. Save the script and give execution access
1.chmod +x /srv/backup-mailbox.sh2.sh /srv/backup-mailbox.sh
If you want to execute every night, you can place the script in the crontab for automatically execute
Good luck and hopefully useful 


Blogger Comment
Facebook Comment