El siguiente tutorial trata de crear una tarea automática para el respaldo de la base de datos MySQL de Zimbra, así como también de la información LDAP de configuraciones y de usuarios.
1) Crear el directorio /backup y dar permisos
# mkdir /backup
# chown zimbra.zimbra /backup
2) Crear el siguiente script: /usr/local/bin/zimbra_mybackup
#!/bin/bash
cd /opt/zimbra
source /opt/zimbra/bin/zmshutilpass=`/opt/zimbra/bin/zmlocalconfig -s mysql_root_password | awk '{print $3}'`
# Backup de MySQL
rm -f /backup/mysql.db.list
su - zimbra -c "/opt/zimbra/bin/mysql --batch --skip-column-names -e \"show databases\" | grep -e mbox -e zimbra > /backup/mysql.db.list"
dir="/backup/db-`date +%F`"
mkdir $dir
chown -R zimbra.zimbra $dir
for db in `cat /backup/mysql.db.list`; do
su - zimbra -c "/opt/zimbra/mysql/bin/mysqldump $db -S /opt/zimbra/db/mysql.sock -u root --password=$pass > $dir/$db.sql"
echo "Dumped $db"
done
# Backup de LDAP (configs y usuarios)
dir="/backup/ldap-`date +%F`"
su - zimbra -c "/opt/zimbra/libexec/zmslapcat -c $dir"
su - zimbra -c "/opt/zimbra/libexec/zmslapcat $dir"# Elimina backups de más de 3 días
find /backup -type d -name "db*" -mtime +3 -exec rm -rf {} \; > /dev/null 2>&1
find /backup -type d -name "ldap*" -mtime +3 -exec rm -rf {} \; > /dev/null 2>&1
2.1) Update para 8.8.12:
#!/bin/bash
cd /opt/zimbra
source /opt/zimbra/bin/zmshutil
pass=`/opt/zimbra/bin/zmlocalconfig -s mysql_root_password | awk '{print $3}'`
# Backup de MySQL
rm -f /backup/mysql.db.list
su - zimbra -c "/opt/zimbra/bin/mysql --batch --skip-column-names -e \"show databases\" | grep -e mbox -e zimbra > /backup/mysql.db.list"
dir="/backup/db-`date +%F`"
mkdir $dir
chown -R zimbra.zimbra $dir
for db in `cat /backup/mysql.db.list`; do
su - zimbra -c "/opt/zimbra/common/bin/mysqldump $db -S /opt/zimbra/data/tmp/mysql/mysql.sock -u root --password=$pass > $dir/$db.sql"
echo "Dumped $db"
done
# Backup de LDAP (configs y usuarios)
dir="/backup/ldap-`date +%F`"
su - zimbra -c "/opt/zimbra/libexec/zmslapcat -c $dir"
su - zimbra -c "/opt/zimbra/libexec/zmslapcat $dir"
# Elimina backups de más de 3 días
find /backup -type d -name "db*" -mtime +3 -exec rm -rf {} \; > /dev/null 2>&1
find /backup -type d -name "ldap*" -mtime +3 -exec rm -rf {} \; > /dev/null 2>&1
3) Setear permisos:
# chmod 755 /usr/local/bin/zimbra_mybackup
4) Agregar la siguiente línea al archivo /etc/crontab
0 23 * * * root /usr/local/bin/zimbra_mybackup
5) Reiniciar servicio cron:
# service crond restart
Nota:
* Las últimas 2 líneas del script almacenan backups de hace 3 días atrás. Esto se puede modificar dependiendo del espacio que tenga disponible.
Referencias:
http://wiki.zimbra.com/wiki/Mysql_Crash_Recovery
0 Comentarios