Globedia.com

×
×

Error de autenticación

Ha habido un problema a la hora de conectarse a la red social. Por favor intentalo de nuevo

Si el problema persiste, nos lo puedes decir AQUÍ

×
cross

Suscribete para recibir las noticias más relevantes

×
Recibir alertas

¿Quieres recibir una notificación por email cada vez que Claudio Concepción Certad escriba una noticia?

Cómo hacer un backup del Active Directory de Samba 4

05/11/2014 00:50 0 Comentarios Lectura: ( palabras)

image En su código fuente Samba 4 incluye un script de Bash llamado samba_backup. El mismo está ubicado en la ruta source4/scripting/bin. Dicho script nos permitirá, como dice el título de esta entrada, hacer un backup o copia de seguridad de las bases de datos y ficheros de configuración más importantes de nuestro Active Directory. Lamentablemente este script es experimental, por lo que usted lo usará a su propio riesgo, sobre todo en la parte de restaurar los backups (lo cual veremos luego) debido a lo que puede pasarle a la data cuando el servidor está up and running.

Otro punto acerca de este script es que el mismo solo está disponible en el código fuente, por lo que si ya usted configuró su Active Directory usando el repositorio SerNet, debe descargar dicho fuente y adaptarlo a las rutas de directorios correspondientes.

¿De qué cosas hace backup el script?

  • Del directorio ../etc
  • Del directorio ../private
  • Del directorio ../sysvol
Normalmente cuando instalamos Samba desde el fuente, el mismo queda en el directorio /usr/local/samba, pero cuando lo hacemos usando el repo SerNet, queda en /var/lib/samba y el fichero smb.conf en /etc/samba.

Lo primero es copiarlo de su ubicación original y pegarlo en /usr/sbin y darle los permisos necesarios para ejecutarlo desde el terminal, no si antes editar la ruta donde guardará el backup.

[root@sambapdc01 ~]# cp /urs/src/samba-4.1.13/source4/scripting/bin/samba_backup /usr/sbin/

[root@sambapdc01 ~]# chown root:root /usr/sbin/samba_backup

[root@sambapdc01 ~]# chmod 750 /usr/sbin/samba_backup

Ahora debemos editarlo, como dijimos, para adaptarlo a nuestro escenario. Básicamente solo hay que editar la variable WHERE, para que quede de la siguiente manera.

[root@sambapdc01 ~]# nano /usr/sbin/samba_backup

#!/bin/sh

#

# Copyright (C) Matthieu Patou 2010-2011

#

# This program is free software; you can redistribute it and/or modify

# it under the terms of the GNU General Public License as published by

# the Free Software Foundation; either version 3 of the License, or

# (at your option) any later version.

#

# This program is distributed in the hope that it will be useful,

# but WITHOUT ANY WARRANTY; without even the implied warranty of

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

# GNU General Public License for more details.

#

# You should have received a copy of the GNU General Public License

# along with this program. If not, see .

#

FROMWHERE=/usr/local/samba

WHERE=/root/samba/backups

if [ -n "$1" ] && [ "$1" = "-h" -o "$1" = "--usage" ]; then

echo "samba_backup [provisiondir] [destinationdir]"

echo "Will backup your provision located in provisiondir to archive stored in destinationdir"

echo "Default provisiondir: $FROMWHERE"

echo "Default destinationdir: $WHERE"

exit 0

fi

[ -n "$1" -a -d "$1" ]&&FROMWHERE=$1

[ -n "$2" -a -d "$2" ]&&WHERE=$2

DIRS="private etc sysvol"

#Number of days to keep the backup

DAYS=90

WHEN=`date +%d%m%y`

if [ ! -d $WHERE ]; then

echo "Missing backup directory $WHERE"

exit 1

fi

if [ ! -d $FROMWHERE ]; then

echo "Missing or wrong provision directory $FROMWHERE"

exit 1

fi

cd $FROMWHERE

for d in $DIRS;do

relativedirname=`find . -type d -name "$d" -prune`

n=`echo $d | sed 's/\//_/g'`

if [ "$d" = "private" ]; then

find $relativedirname -name "*.ldb.bak" -exec rm {} \;

for ldb in `find $relativedirname -name "*.ldb"`; do

tdbbackup $ldb

if [ $? -ne 0 ]; then

echo "Error while backuping $ldb"

exit 1

fi

done

tar cjf ${WHERE}/samba4_${n}.${WHEN}.tar.bz2 $relativedirname --exclude=*.ldb >/dev/null 2>&1

if [ $? -ne 0 ]; then

echo "Error while archiving ${WHERE}/samba4_${n}.${WHEN}.tar.bz2"

exit 1

fi

find $relativedirname -name "*.ldb.bak" -exec rm {} \;

else

tar cjf ${WHERE}/${n}.${WHEN}.tar.bz2 $relativedirname >/dev/null 2>&1

if [ $? -ne 0 ]; then

echo "Error while archiving ${WHERE}/${n}.${WHEN}.tar.bz2"

exit 1

fi

fi

done

find $WHERE -name "samba4_*bz2" -mtime +90 -exec rm {} \; >/dev/null 2>&1

Creamos el directorio donde se almacenará el backup.

[root@sambapdc01 ~]# mkdir -p samba/backups

[root@sambapdc01 ~]# chmod 750 -R samba/

Ahora lo ejecutamos para probar

[root@sambapdc01 ~]# samba_backup

Si no devuelve mensaje de error es porque ha funcionado correctamente. Verificamos su éxito listando el contenido del directorio /root/samba/backups.

[root@sambapdc01 ~]# ls -lh samba/backups/

total 4.7M

-rw-r--r--. 1 root root 558 Nov 5 00:30 etc.051114.tar.bz2

-rw-r--r--. 1 root root 2.3M Nov 5 00:30 samba4_private.051114.tar.bz2

-rw-r--r--. 1 root root 465 Nov 5 00:30 sysvol.051114.tar.bz2

Debido a su éxito ya podemos crear una tarea programada para dicho backup diario a las 2:00 A.M., por ejemplo.

[root@sambapdc01 ~]# crontab -e

0 2 * * * /usr/sbin/samba_backup

Fuente: https://wiki.samba.org/index.php/Backup_and_Recovery#Backup


Sobre esta noticia

Autor:
Claudio Concepción Certad (682 noticias)
Fuente:
fraterneo.blogspot.com
Visitas:
2977
Tipo:
Reportaje
Licencia:
Creative Commons License
¿Problemas con esta noticia?
×
Denunciar esta noticia por

Denunciar

Etiquetas

Comentarios

Aún no hay comentarios en esta noticia.