Este procedimiento es una traducción del documento oficial en https://wiki.samba.org/index.php/Backup_and_Recovery y resume las tareas que debemos hacer para mantener un respaldo de la configuración de Samba4 y como restaurarlo en caso de emergencia.
Respaldo
1) Samba4 incluye una herramienta que funciona out-of-the-box para realizar los respaldos, el problema es que debemos copiarla manualmente desde el tarball.
# cp ..../source4/scripting/bin/samba_backup /usr/sbin # chown root:root /usr/sbin/samba_backup # chmod 750 /usr/sbin/samba_backup
2) Editar los siguientes campos del script según las necesidades, donde los campos
FROMWHERE=es la ruta donde esta instalado samba
WHERE=donde se almacenarán los respaldos
DAYS=la cantidad de respaldos que se guardarán en la ruta anterior
FROMWHERE=/usr/local/samba WHERE=/usr/local/backups DAYS=90
3) Crear el directorio de respaldos y asignar permisos:
# mkdir /usr/local/backups # chmod 750 /usr/local/backups
4) Ejecutar el script para generar el primer respaldo:
# /usr/sbin/samba_backup
Si todo resulta correctamente veremos en el directorio "/usr/local/backups" los siguientes archivos:
etc.300514.tar.bz2 samba4_private.300514.tar.bz2 sysvol.300514.tar.bz2
Restauración
El procedimiento de restauración asume que se ha utilizado el script provisto por samba (samba_backup).
Notas muy importantes:
- Nunca hagas una restauración y un cambio de versión al mismo tiempo. Siempre restaura el sistema con la misma versión de samba que estabas utilizando al momento de fallar.
- Restaura en un sistema que tenga la misma dirección IP y Hostname, de lo contrario tendras problemas con DNS y Kerberos.
- Recomendado: Restaurar en el mismo sistema donde se ha creado el backup.
Si todo el sistema esta roto, primero se debe preparar una máquina igual a la que estaba en producción.
Borrar las carpetas que vamos a restaurar (SAMBA NO DEBE ESTAR EN EJECUCION):
# rm -rf /usr/local/samba/etc # rm -rf /usr/local/samba/private # rm -rf /usr/local/samba/var/locks/sysvol
Ahora descomprimir el último backup disponible en la ubicación original:
# cd /usr/local/backups # tar -jxf etc.{Timestamp}.tar.bz2 -C /usr/local/samba/ # tar -jxf samba4_private.{Timestamp}.tar.bz2 -C /usr/local/samba/ # tar -jxf sysvol.{Timestamp}.tar.bz2 -C /usr/local/samba/
Renombrar los archivos *.ldb.bak en el directorio 'private' a *.ldb, se puede hacer así:
# find /usr/local/samba/private/ -type f -name '*.ldb.bak' -print0 | while read -d $'\0' f ; do mv "$f" "${f%.bak}" ; done
Si el respaldo no tiene ACL Extendidas, se debe ejecutar:
# samba-tool ntacl sysvolreset
Si se estaba usando BIND como Backend DNS (Debería estarlo), se debe ejecutar el siguiente comando:
# samba_upgradedns --dns-backend=BIND9_DLZ
Ahora se puede reiniciar el servidor y comprobar que todos los servicios suban correctamente.
0 Comentarios