#/bin/bash
## mkperm.sh
##
## This script is intended to create a backup of Exchange tree when mounted in EXCHANGE_MIRROR.
##
## Configuration:
##
## This should contain the path to MBX folder.
LOGFILE=mkperm_test.log
EXCHANGE_MIRROR=/mnt/mailsync/DOMAIN/MBX
## And the user homes to be copied to
DOMAIN_HOMES=/home/DOMAIN
## Set Permissions.
MAILDIR_PERMISSIONS=700
MAILFILE_PERMISSIONS=600
######################################################################################################
#for mailuser in `ls $EXCHANGE_MIRROR`
#do
mailuser=sue
SOURCE=$EXCHANGE_MIRROR/$mailuser
MAILUSER=`echo $mailuser | tr '[A-Z]' '[a-z]'` # make mailuser lowercase for target
DEST=$DOMAIN_HOMES/$MAILUSER/Maildir
cd $SOURCE
find . -mindepth 2 -type d | while read subdir # traverse Exchange folders
do
subdir=`echo $subdir | sed 's/\.\///'` # remove leading ./
destsub=`echo .$subdir | sed 's/Inbox\///;s/\//\./'`
destsub=$DEST/$destsub
mkdir "$destsub" # Create Maildir structure
mkdir "$destsub/new" # It's OK if this fails since
mkdir "$destsub/tmp" # the dirs might exist already.
mkdir "$destsub/cur"
for i in "$SOURCE/$subdir/"*; do cp -u "$i" "$destsub/cur/"; done
done
mkdir $DEST/cur
mkdir $DEST/tmp
mkdir $DEST/new
# cp -u $SOURCE/Inbox/* $DEST/cur
for i in "$SOURCE/Inbox/"*; do cp -u "$i" "$DEST/cur/"; done
find . -maxdepth 1 -type d | while read subdir
do
subdir=`echo $subdir | sed "s/+/ /;s/.\///"`
if [ "$subdir" != ".." -a "$subdir" != "." -a "$subdir" != "Inbox" -a "$subdir" != "Contacts" -a "$subdir" != "Journal" ]
then
subdir=`echo $subdir | sed 's/\ /\\ /g'`
mkdir "$DEST/.$subdir"
mkdir "$DEST/.$subdir"/{cur,tmp,new}
for i in "$SOURCE/$subdir/"*; do cp -u "$i" "$DEST/.$subdir/cur/"; done
fi
done
chown -R -L $MAILUSER:domain\ users $DEST
find . -type d -exec chmod $MAILDIR_PERMISSIONS {} \;
find . -type f -exec chmod $MAILFILE_PERMISSIONS {} \;
#done