Skip to content

Instantly share code, notes, and snippets.

@SWORDIntel
Created March 21, 2025 14:43
Show Gist options
  • Save SWORDIntel/a2a2d1a78a3c62958252c8994eaf4369 to your computer and use it in GitHub Desktop.
Save SWORDIntel/a2a2d1a78a3c62958252c8994eaf4369 to your computer and use it in GitHub Desktop.
Zimbra-SMASH
#!/bin/bash
# Complete Zimbra server backup script
BACKUP_DIR="/backup/zimbra_full_$(date +"%Y%m%d_%H%M%S")"
mkdir -p $BACKUP_DIR
# Stop Zimbra services
su - zimbra -c "zmcontrol stop"
# Database backup (MariaDB/MySQL)
MYSQL_ROOT_PASSWORD=$(su - zimbra -c "zmlocalconfig -s mysql_root_password" | cut -d = -f2 | tr -d ' ')
echo "Dumping databases..."
for db in $(mysql -uzimbra -p$MYSQL_ROOT_PASSWORD -e "SHOW DATABASES" | grep -v "Database" | grep "zimbra"); do
echo -ne "Progress: $db\r"
mysqldump -uzimbra -p$MYSQL_ROOT_PASSWORD --single-transaction $db > "${BACKUP_DIR}/${db}.sql"
done
# LDAP backup
echo "Backing up LDAP..."
su - zimbra -c "zmslapcat -c ${BACKUP_DIR}/ldap_config"
su - zimbra -c "zmslapcat ${BACKUP_DIR}/ldap_data"
# Backup zimbra directory
echo "Backing up Zimbra files..."
tar -czf "${BACKUP_DIR}/zimbra_files.tar.gz" /opt/zimbra
# Start Zimbra services
su - zimbra -c "zmcontrol start"
echo "Full Zimbra backup completed!"
echo "Backup location: ${BACKUP_DIR}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment