Kolab server mail backup script
- Puneeth K P
- Mar 30, 2022
- 2 min read

#!/bin/sh
set -o pipefail
now="$(date +'%d_%m_%Y_%H_%M_%S')"
filename="var_lib_imap".tar.gz
filename1="etc".tar.gz
backupfolder="/home/manage/BACKUP/MAIL_BACKUP"
sharefolder="/mnt/BACKUP/MAIL_BACKUP"
mkdir "$sharefolder/$now"
sharefolder="/mnt/BACKUP/MAIL_BACKUP/$now"
logfile="$backupfolder/"backup_mail_log_"$(date +'%Y_%m')".txt
errorlogfile="$backupfolder/"error_log_"$(date +'%d_%m_%Y')".txt
echo "Mail Backup started at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
################## MYSQL BACKUP #######################
echo "mysqldump started at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
for DB in roundcube kolab piler ; do
echo "Backup started for $DB database" >> "$logfile"
mysqldump -u root -phjt#y45WnH --single-transaction --quick --lock-tables=false "$DB" 2>"$errorlogfile" | bzip2 -c > "$sharefolder/$DB.sql.bz2" || { echo "Exit Code(mysql/bzip): $?">>"$errorlogfile"; echo "Mail Backup Failed while Taking a mysqldump for $DB database" | mail -s "Backup Failed" admin@puneeth.com && exit 1; }
echo "Backup done for $DB database" >> "$logfile"
done
echo "mysqldump finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
#######################################################
################## LDAP BACKUP ########################
echo "Running script for ldap backup" >> "$logfile"
bash /home/manage/ldap-bak.sh --before 2>"$errorlogfile" || { echo "Exit Code: $?">>"$errorlogfile"; echo "Mail Backup Failed while Taking a ldap backup" | mail -s "Backup Failed" radmin@puneeth.com && exit 1; }
echo "Copying the ldap ldif files to Shared Folder" >> "$logfile"
cp /tmp/*.ldif "$sharefolder/" 2>"$errorlogfile" || { echo "Exit Code: $?">>"$errorlogfile"; echo "Mail Archive Backup Failed while Copying ldif files to the Share" | mail -s "Backup Failed" radmin@puneeth.com && exit 1; }
echo "Removing the extra ldif files" >> "$logfile"
bash /home/manage/ldap-bak.sh --after 2>"$errorlogfile" || { echo "Exit Code: $?">>"$errorlogfile"; echo "Mail Archive Backup Failed while Deleting the extra ldif files" | mail -s "Backup Failed" radmin@puneeth.com && exit 1; }
echo "LDAP Backup finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
#######################################################
############## /var/lib/imap BACKUP ###################
echo "Creating a compressed backup file for /var/lib/imap" >> "$logfile"
tar -czvf "$sharefolder/$filename" /var/lib/imap/ 2>"$errorlogfile" || { echo "Exit Code: $?">>"$errorlogfile"; echo "Mail Backup Failed while Creating a tar file for /var/lib/imap folder" | mail -s "Backup Failed" radmin@puneeth.com && exit 1; }
#echo "Copying the compressed tar file to Shared Folder" >> "$logfile"
#cp "$backupfolder/$filename" "$sharefolder/" 2>"$errorlogfile" || { echo "Exit Code: $?">>"$errorlogfile"; echo "Mail Backup Failed while Copying to the Share" | mail -s "Backup Failed" radmin@puneeth.com && exit 1; }
#echo "Deleting the extra copy of the backup file" >> "$logfile"
#rm -f "$backupfolder/$filename" 2>"$errorlogfile" || { echo "Exit Code: $?">>"$errorlogfile"; echo "Mail Backup Failed while Deleting the extra copy" | mail -s "Backup Failed" radmin@puneeth.com && exit 1; }
echo "Compressed tar archive for /var/lib/imap done successfully" >> "$logfile"
#######################################################
################## /etc BACKUP ########################
echo "Creating a compressed backup file for /etc" >> "$logfile"
tar -czvf "$sharefolder/$filename1" /etc/ 2>"$errorlogfile" || { echo "Exit Code: $?">>"$errorlogfile"; echo "Mail Backup Failed while Creating a tar file for /etc folder" | mail -s "Backup Failed" radmin@puneeth.com && exit 1; }
echo "Compressed tar archive for /etc done successfully" >> "$logfile"
#######################################################
echo "Mail Backup finished at $(date +'%d-%m-%Y %H:%M:%S')" >> "$logfile"
echo "Mail Backup Successful" | mail -s "Mail Backup completed successfully" radmin@puneeth.com
echo "-----------------------" >> "$logfile"
Comments