systemadmin.es > Backup > Instalar el servidor de backups Bacula

Instalar el servidor de backups Bacula

Bacula es una herramienta para realizar backups por red con soporte para UNIX (Linux, MacOS X…) y Windows. Vamos a ver como realizar la instalación del servidor de backups bacula en un equipo Linux.

Para almacenar el catalogo vamos a usar un backend MySQL, por lo que supondremos que tenemos instalado un MySQL 5.1.

Descargamos el bacula y lo descomprimimos:

wget 'http://downloads.sourceforge.net/project/bacula/bacula/5.0.3/bacula-5.0.3.tar.gz?r=http%3A%2F%2Fwww.bacula.org%2Fen%2F%3Fpage%3Ddownloads&ts=1295341109&use_mirror=ovh'
tar xzf bacula-5.0.3.tar.gz 
cd bacula-5.0.3

Para instalar la herramienta de gestión gráfica (bat) deberemos instalar qt:

yum install qt4-devel -y

A continuación deberemos añadir el qmake al PATH:

sed -i 's#unset pathmunge#pathmunge /usr/lib/qt4/bin\nunset pathmunge#' /etc/profile
. /etc/profile

Para simplificar, crearemos un solo usuario para los tres servicios que irán al servidor (bacula-fd, bacula-sd, bacula-dir)

useradd bacula

A continuación creamos los directorios que necesitamos y generamos el password con pwgen para el usuario de la base de datos del bacula:

mkdir -p /usr/local/etc/bacula/
pwgen 20 > /usr/local/etc/bacula/.mysql.bacula.pass
chmod 600 /usr/local/etc/bacula/.mysql.bacula.pass
mkdir -p /var/bacula/working
chown bacula. /var/bacula -R

La configuración del bacula la haremos con las siguientes opciones:

  • –with-mysql=/usr/local/mysql: Indicamos dónde tenemos instalado el MySQL
  • –enable-bat: Habilitamos la herramienta bat de gestión gráfica
  • –with-dump-email= y –with-job-email=: Indicamos el email que queremos que reciba las diferentes alertas
  • –with-dir-password=, –with-fd-password= y –with-sd-password=: Indicamos las contraseñas de los diferentes servicios, si no especificamos una se generará automáticamente una en los ficheros de configuración
  • –sysconfdir: Indicamos dónde dejaremos las opciones de configuración. Al ser un servicio complejo, es preferible usar un directorio específico para bacula. Por ejemplo, /usr/local/etc/bacula
  • –with-db-password=: Indicamos la contrasenya para el usuario de la base de datos
  • –with-working-dir=: Indicamos un directorio de trabajo para el bacula dónde dejará sus archivos temporales
  • –enable-smartalloc: Con esta opción se habilita el código de detección de memory leaks. Dicha opción esta recomendada en la documentación del bacula.

El configure quedaría, por ejemplo:

./configure --with-mysql=/usr/local/mysql --prefix=/usr/local \
            --enable-bat --with-dump-email=jordi@systemadmin.es \
            --with-job-email=jordi@systemadmin.es \
            --with-dir-user=bacula --with-sd-user=bacula \
            --with-fd-user=bacula --with-dir-group=bacula \
            --with-sd-group=bacula --with-fd-group=bacula \
            --sysconfdir=/usr/local/etc/bacula \
            --with-db-password=$(cat /usr/local/etc/bacula/.mysql.bacula.pass) \
            --enable-smartalloc --with-working-dir=/var/bacula/working/

Al finalizar nos dará un resumen como el siguiente:

Configuration on Tue Jan 18 19:12:51 CET 2011:

   Host:		    i686-pc-linux-gnu -- redhat 
   Bacula version:	    Bacula 5.0.3 (04 August 2010)
   Source code location:    .
   Install binaries:	    /usr/local/sbin
   Install libraries:	    /usr/local/lib
   Install config files:    /usr/local/etc/bacula
   Scripts directory:	    /usr/local/etc/bacula
   Archive directory:	    /tmp
   Working directory:	    /var/bacula/working
   PID directory:	    /var/run
   Subsys directory:	    /var/lock/subsys
   Man directory:	    ${datarootdir}/man
   Data directory:	    /usr/local/share
   Plugin directory:	    /usr/local/lib
   C Compiler:		    gcc 4.1.2
   C++ Compiler:	    /usr/bin/g++ 4.1.2
   Compiler flags:	     -g -O2 -Wall -fno-strict-aliasing -fno-exceptions -fno-rtti
   Linker flags:	     
   Libraries:		    -lpthread -ldl 
   Statically Linked Tools: no
   Statically Linked FD:    no
   Statically Linked SD:    no
   Statically Linked DIR:   no
   Statically Linked CONS:  no
   Database type:	    MySQL
   Database port:	     
   Database lib:	    -L/usr/local/mysql/lib64/mysql -lmysqlclient_r -lz
   Database name:	    bacula
   Database user:	    bacula

   Job Output Email:	    jprats@systemadmin.es
   Traceback Email:	    jprats@systemadmin.es
   SMTP Host Address:	    localhost

   Director Port:	    9101
   File daemon Port:	    9102
   Storage daemon Port:     9103

   Director User:	    bacula
   Director Group:	    bacula
   Storage Daemon User:     bacula
   Storage DaemonGroup:     bacula
   File Daemon User:	    bacula
   File Daemon Group:	    bacula

   SQL binaries Directory   /usr/local/mysql/bin

   Large file support:	    yes
   Bacula conio support:    yes -lncurses
   readline support:	    no 
   TCP Wrappers support:    no 
   TLS support: 	    yes
   Encryption support:	    yes
   ZLIB support:	    yes
   enable-smartalloc:	    yes
   enable-lockmgr:	    no
   bat support: 	    yes
   enable-gnome:	    no 
   enable-bwx-console:	    no 
   enable-tray-monitor:     no
   client-only: 	    no
   build-dird:		    yes
   build-stored:	    yes
   Plugin support:	    yes
   AFS support: 	    no
   ACL support: 	    yes
   XATTR support:	    yes
   Python support:	    no 
   Batch insert enabled:    yes

Podremos seguir con el make y el make install:

make && make install

A continuación deberemos crear los usuarios y la base de datos en el MySQL:

/usr/local/etc/bacula/create_mysql_database -p$(cat /var/mysql/.mysql.root.pass)
echo "grant all privileges on bacula.* to bacula@localhost identified by '$(cat /usr/local/etc/bacula/.mysql.bacula.pass)';" | mysql -p$(cat /var/mysql/.mysql.root.pass)
/usr/local/etc/bacula/make_mysql_tables -p$(cat /var/mysql/.mysql.root.pass)

En la segunda parte veremos como configurar el cliente y el servidor y arrancar los daemons.

En esta misma serie, instalación y configuración de bacula:

6 comments to “Instalar el servidor de backups Bacula”

  1. Se te ha colado algo 😛

    servidor (bacula-fd, bacula-sd, bacula-dir)
    *per simplicitat, un sol user al server:*

    Esperaremos a la segunda parte para ver como configurarlo 😉

    Un saludo

  2. Corregido, se me han colado mis apuntes 😛 Bien visto, muchas gracias!

  3. [root@elvis ~]# /usr/local/etc/bacula/.mysql.bacula.pass
    -bash: /usr/local/etc/bacula/.mysql.bacula.pass: Permiso denegado
    ??? Holaaa buen tuto pero me quedo aqui , a ver si me hechas una mano

    Saludos

  4. Hola,
    En este fichero se almacena la contraseña para el usuario bacula, no es para ejecutarse. En que paso estas?

    saludos,

  5. Hola muy buenas tarde estoy en mi periodo de practica como tecnologo en sistemas
    y me incuentro instalando bacula para una maquina debian 6.0 squezee con un NAS WestDigital 5 tb pero la duda es que solo debo utilizar solo una maquina para hacerle el backup y mandarle al NAS

    podria utilizar este mismo manual igual como esta o cambiaria algunas cosas
    GRACIAS Y FELIZ DIA

  6. Hola Estimado Agradecerte por el tutorial, mi duda es la siguiente:
    Tengo instalado en una maquina virtual el bacula y funciona correctamente pero quiero configurar el Almacenamiento de mis backups en otro equipo que no sea mi servidor. se podria realizar esta configuracion para que almacene en otro equipo ?
    por favor podrias colaborarme con la configuracion de los archivos para que pueda realizar esta tarea??
    saludos

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>