Backup de MySQL y LDAP

Daniel Eugenin M. -

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/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/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

Inicie sesión para dejar un comentario.
Tecnología de Zendesk