Vous êtes sur la page 1sur 21

Bacula.

Manual para la instalacin en CentOS v6.x.


(Documento sujeto a cambios)
Ing. Luis Gonzlez Fraga
31/03/2013

Bacula, instalacin en CentOS v.6.x by Luis Gonzlez Fraga is licensed under a Creative
Commons Attribution-NonCommercial-NoDerivs 3.0 Spain License. Based on work at
www.samvar.es
Nota del autor:

Usted encontrar algunos errores de redaccin en este documento, puesto que el mismo est
confeccionado en casi toda su totalidad con el uso de un software de transcripcin de voz.
Disculpe las molestias que esto pueda ocasionar.

Instalacin de Bacula:

Abriremos la terminal de consola para realizar algunos pasos previos a la instalacin.

Una vez abierta, realizaremos la instalacin de algunas dependencias necesarias las cuales
pueden que ya se encuentren instaladas o actualizadas en nuestro sistema en cuyo caso no se
realizar absolutamente nada. Escribimos o copiamos el siguiente mandato de instalacin en
dicha terminal de consola para instalar las dependencias necesarias:

yum -y install gcc gcc-c++ mysql mysql-devel mysql-server autoconf automake m4 make qwt
qwt-devel wxGTK

Concluida la instalacin de los paquetes iniciamos el servicio de base de datos escribiendo el


siguiente mandato:

service mysqld start

Como tercer paso, le indicamos al servicio MySQL quin es el usuario administrador de la base
de datos as como su respectiva contrasea (Usted puede elegir la que desee).

mysqladmin -u root password 123456

Luego indicar que el servicio siempre se inicie al arrancar el sistema en los niveles de ejecucin
2,3,4 y 5 escribiendo el siguiente comando:

chkconfig --level 2345 mysqld on

Crear la carpeta llamada Bacula dentro del directorio /opt escribiendo el siguiente comando:

mkdir /opt/bacula

Y acceder a la misma:

cd /opt/bacula

Descargar ahora el paquete de instalacin para la ltima versin de Bacula por ejemplo, la
versin 5.2.13. Escribir en consola el siguiente mandato:

wget http://downloads.sourceforge.net/project/bacula/bacula/5.2.13/bacula-5.2.13.tar.gz

Una vez concluida la descarga, descomprimir el paquete:

tar xzf /opt/bacula/bacula-5.2.13.tar.gz

Y acceder al directorio de instalacin:


cd /opt/bacula/bacula-5.2.13

Y ejecutar la siguiente lnea de comando:

./configure --with-mysql

La cual ejecuta un script que permite acondicionar algunos ficheros necesarios para la
instalacin. Tambin se le pasa el un parmetro que define que se har uso de una base de
datos MySQL.

Finalizado el script, ahora se puede compilar los archivos de instalacin ejecutando el


comando:

make

Y proseguir con la instalacin de Bacula:

make install

Concluida la instalacin de Bacula, copiar el script de ejecucin del servicio al directorio donde
se localizan el resto de los servicios en CentOS.

cp -av /etc/bacula/bacula /etc/rc.d/init.d/bacula

Tambin es necesario editarlo:

vi /etc/rc.d/init.d/bacula

para aadir bajo la lnea del inicio del script las siguientes lneas:

# chkconfig: 345 99 10

# description: bacula

Guardar los cambios, y entrar va consola al directorio de instalacin de Bacula para ejecutar
unos scripts que permitirn crear la base de datos de Bacula, escribir las tablas necesarias en la
misma y asignar privilegios de acceso.

cd /etc/bacula/

Ejecutar siguiendo este orden: "Primero el script de acceso y privilegios de Bacula en la base de
datos"

./grant_bacula_privileges -u root -p

Aqu se solicita contrasea de acceso del usuario administrador de MySQL.

Ejecutar el script de creacin de la base de datos que utilizar Bacula.

./create_bacula_database -u root -p

Se vuelve a solicitar la contrasea de acceso del usuario administrador de MySQL


Y por ltimo se crean las diferentes tablas que utilizar Bacula en su base de datos:

./make_bacula_tables -u root -p

Aqu tambin se solicita la contrasea de acceso del usuario administrador de MySQL.

Antes de iniciar los servicios de Bacula es necesario editar los ficheros de configuracin en la
carpeta de instalacin llamada Bacula dentro del directorio /etc.

-"Importante."-
En la configuracin de los ficheros, prestar especial atencin al escribir la ruta verdadera de
instalacin de Bacula as como la de trabajo marcadas en rojo como se muestra en el siguiente
ejemplo:

Director { # define myself


Name = servercentos03-dir
DIRport = 9101 # where we listen for UA connections
QueryFile = "/etc/bacula/query.sql"
WorkingDirectory = "/opt/bacula/working"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 20
Password = "989669" # Console password
Messages = Daemon
}

Otro aspecto muy pero muy importante es indicar el usuario y la contrasea para conectar a la
base de datos. En esta gua dicho usuario es root y emplear la contrasea del administrador
de la base de datos.

Catalog {

Name = MyCatalog

# Uncomment the following line if you want the dbi driver

# dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport =

dbname = "bacula"; dbuser = "root"; dbpassword = "12345"

}
A continuacin se muestra un ejemplo de cada uno de estos ficheros que son validos para una
instalacin de Bacula en CentOS v.6.x:

Fichero: bacula-dir.conf

###########################################################
### Director Definitions ###
###########################################################
Director { # define myself
Name = servercentos03-dir
DIRport = 9101 # where we listen for UA connections
QueryFile = "/etc/bacula/query.sql"
WorkingDirectory = "/opt/bacula/working"
PidDirectory = "/var/run"
Maximum Concurrent Jobs = 20
Password = "989669" # Console password
Messages = Daemon
}

###########################################################
### Backup JobsDef##
###########################################################

JobDefs {
Name = "DefaultJob"
Type = Backup
Level = Full
# Client = servercentos03-fd
# FileSet = "Full Set"
# Schedule = "WeeklyCycle"
Storage = File
Messages = Standard
Pool = FullFile
# Priority = 1
# Write Bootstrap = "/opt/bacula/working/%c.bsr"
}

###########################################################
### Backup Job's Definitions ###
###########################################################

Job {
Name = "Backupservercentos03"
JobDefs = "DefaultJob"
Write Bootstrap = "/opt/bacula/working/servercentos03.bsr"
Client = servercentos03-fd
FileSet = "servercentos03-FS"
Schedule = "servercentos03-SCH"
Maximum Concurrent Jobs = 20
Priority = 11
}

Job {
Name = "Backupnarzil"
JobDefs = "DefaultJob"
Write Bootstrap = "/opt/bacula/working/narzil.bsr"
Client = narzil-fd
FileSet = "narzil-FS"
Schedule = "narzil-SCH"
Maximum Concurrent Jobs = 20
Priority = 12
}

# Backup the catalog database (after the nightly save)


Job {
Name = "BackupCatalog"
JobDefs = "DefaultJob"
Write Bootstrap = "/opt/bacula/working/catalog.bsr"
Client = CATALOG-FD
FileSet="CATALOG-FS"
Schedule = "CATALOG-SCH"
# This creates an ASCII copy of the catalog
# Arguments to make_catalog_backup.pl are:
# make_catalog_backup.pl
#RunBeforeJob = "/usr/lib/bacula/make_catalog_backup.pl MyCatalog"
# This deletes the copy of the catalog
#RunAfterJob = "/usr/lib/bacula/delete_catalog_backup"
Maximum Concurrent Jobs = 20
Priority = 13
}

###########################################################
### Restore Jobs ###
###########################################################

### Template ###


JobDefs {
Name = "RestoreFiles"
Type = Restore
Storage = File
Pool = FullFile
Messages = Standard
}

Job {
Name = "Restoreservercentos03"
JobDefs = "RestoreFiles"
Client = servercentos03-fd
FileSet = "servercentos03-FS"
Where = "/opt/restaurar/servercentos03/"
}

Job {
Name = "Restorenarzil"
JobDefs = "RestoreFiles"
Client = narzil-fd
FileSet = "narzil-FS"
Where = "J:/RestaurarDatos/"
}

Job {
Name = "RestoreCATALOG"
JobDefs = "RestoreFiles"
Client = CATALOG-FD
FileSet = "CATALOG-FS"
Where = "/opt/restaurar/CATALOG/"
}

###########################################################
### File Set Definitions ###
###########################################################

FileSet {
Name = "servercentos03-FS"
Enable VSS = No
Include {
Options {
signature = MD5
compression = GZIP
}
#File = "/bin"
#File = "/boot"
#File = "/dev"
File = "/etc"
File = "/home"
File = "/lib"
#File = "/mnt"
File = "/root"
File = "/sbin"
#File = "/selinux"
#File = "/srv"
File = "/tmp"
File = "/usr"
File = "/var/account"
File = "/var/cache"
File = "/var/db"
File = "/var/empty"
#File = "/var/games"
File = "/var/gdm"
File = "/var/lib"
File = "/var/local"
File = "/var/lock"
File = "/var/log"
File = "/var/mail"
File = "/var/named"
File = "/var/nis"
File = "/var/opt"
File = "/var/preserve"
File = "/var/racoon"
File = "/var/run"
File = "/var/spool"
File = "/var/tmp"
File = "/var/www/"
}
}

FileSet {
Name = "narzil-FS"
Enable VSS = Yes
Include {
Options {
signature = MD5
compression = GZIP
}
File = "D:/TRABAJO/videos tutoriales/Documentos/"
File = "D:/TRABAJO/compartida/Trabajos con Centos/"
}
}

FileSet {
Name = "CATALOG-FS"
Enable VSS = No
Include {
Options {
signature = MD5
compression = GZIP
}
File = "/etc"
File = "/opt/bacula/working"
File = "/var/log"
}
}

###########################################################
### Schedule Definitions ###
###########################################################

Schedule {
Name = "servercentos03-SCH"
Run = mon at 00:00
Run = Level = Differential Storage = File Pool = DiffFile tue-sun at 02:00
}

Schedule {
Name = "narzil-SCH"
Run = mon at 04:00
Run = Level = Differential Storage = File Pool = DiffFile tue-sun at 06:30
}

Schedule {
Name = "CATALOG-SCH"
Run = mon at 03:00
Run = Differential Pool = DiffFile tue-sat at 03:30
}

###########################################################
### Clients Definitions ###
###########################################################
Client {
Name = servercentos03-fd
Address = 192.168.1.15
FDPort = 9102
Catalog = MyCatalog
Password = "989669" # password for FileDaemon
File Retention = 15 days # 30 days
Job Retention = 1 months # six months
AutoPrune = yes # Prune expired Jobs/Files
Maximum Concurrent Jobs = 20
}

Client {
Name = CATALOG-FD
Address = 192.168.1.15
FDPort = 9102
Catalog = MyCatalog
Password = "989669" # password for FileDaemon
File Retention = 15 days # 30 days
Job Retention = 1 months # six months
AutoPrune = yes # Prune expired Jobs/Files
Maximum Concurrent Jobs = 20
}

Client {
Name = narzil-fd
Address = 192.168.1.6
FDPort = 9102
Catalog = MyCatalog
Password = "989669" # password for FileDaemon
File Retention = 15 days # 30 days
Job Retention = 1 months # six months
AutoPrune = yes # Prune expired Jobs/Files
Maximum Concurrent Jobs = 20
}

###########################################################
### Storage Definitions ###
###########################################################
Storage {
Name = File
Address = 192.168.1.15 # N.B. Use a fully qualified name here
SDPort = 9103
Password = "989669"
Device = FileStorage
Media Type = File
Maximum Concurrent Jobs = 20
}

###########################################################
### Catalog ###
###########################################################

Catalog {
Name = MyCatalog
# Uncomment the following line if you want the dbi driver
# dbdriver = "dbi:mysql"; dbaddress = 127.0.0.1; dbport =
dbname = "bacula"; dbuser = "root"; dbpassword = "123456"
}
###########################################################
### Message Definitions ###
###########################################################
Messages {
Name = Standard

mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t %e of %c


%l\" %r"
operatorcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) \<%r\>\" -s \"Bacula:
Intervention needed for %j\" %r"
mail = root@localhost = all, !skipped
operator = root@localhost = mount
console = all, !skipped, !saved

append = "/root/bacula/bin/working/log" = all, !skipped


catalog = all
}

Messages {
Name = Daemon
mailcommand = "/etc/bacula/bsmtp -h 192.168.1.2 -f \"\(Bacula\) \<%r\>\" -s \"Bacula: %t
%e of %c %l\" %r"
mail = administrador@samvar.es = all, !skipped
console = all, !skipped, !saved
append = "/opt/bacula/working/log" = all, !skipped
}

###########################################################
### Pools ###
###########################################################
### Full Files ###
Pool {
Name = FullFile
Maximum Volumes = 0
Pool Type = Backup
Use Volume Once = no
Maximum Volume Jobs = 8
Maximum Volume Files = 0
Maximum Volume Bytes = 0
Volume Use Duration = 0
Catalog Files = yes
AutoPrune = yes
Volume Retention = 45 days
Recycle Current Volume = no
Recycle = yes
Label Format = FullFile-
}

Pool {
Name = DiffFile
Pool Type = Backup
Use Volume Once = no
Maximum Volume Jobs = 24
Maximum Volume Files = 0
Maximum Volume Bytes = 0
Volume Use Duration = 0
Catalog Files = yes
Recycle = yes
AutoPrune = yes
Volume Retention = 45 days
Label Format = FileDiff-
}

# Scratch pool definition


Pool {
Name = Scratch
Pool Type = Backup
}

#
# Restricted console used by tray-monitor to get the status of the director
#
Console {
Name = servercentos03-mon
Password = "989669"
CommandACL = status, .status
}

Fichero: bacula-fd.conf

#
# Default Bacula File Daemon Configuration file
#
# For Bacula release 5.2.13 (19 February 2013) -- redhat (Final)
#
# There is not much to change here except perhaps the
# File daemon Name to
#

#
# List Directors who are permitted to contact this File daemon
#
Director {
Name = servercentos03-dir
Password = "989669"
}

#
# Restricted Director, used by tray-monitor to get the
# status of the file daemon
#
Director {
Name = servercentos03-mon
Password = "989669"
Monitor = yes
}

#
# "Global" File daemon configuration specifications
#
FileDaemon { # this is me
Name = servercentos03-fd
FDport = 9102 # where we listen for the director

WorkingDirectory = /opt/bacula/working
Pid Directory = /var/run
Maximum Concurrent Jobs = 20
}
# Send all messages except skipped files back to Director
Messages {
Name = Standard
director = servercentos03-dir = all, !skipped, !restored
}

Fichero: Bacula-sd.conf

#
# Default Bacula Storage Daemon Configuration file
#
# For Bacula release 5.2.13 (19 February 2013) -- redhat (Final)
#
# You may need to change the name of your tape drive
# on the "Archive Device" directive in the Device
# resource. If you change the Name and/or the
# "Media Type" in the Device resource, please ensure
# that dird.conf has corresponding changes.
#

Storage { # definition of myself


Name = servercentos03-sd
SDPort = 9103 # Director's port
WorkingDirectory = "/opt/bacula/working"
Pid Directory = "/var/run"
Maximum Concurrent Jobs = 20
}

#
# List Directors who are permitted to contact Storage daemon
#
Director {
Name = servercentos03-dir
Password = "989669"
}

#
# Restricted Director, used by tray-monitor to get the
# status of the storage daemon
#
Director {
Name = servercentos03-mon
Password = "989669"
Monitor = yes
}

#
# Note, for a list of additional Device templates please
# see the directory <bacula-source>/examples/devices
# Or follow the following link:
# http://bacula.svn.sourceforge.net/viewvc/bacula/trunk/bacula/examples/devices/
#

#
# Devices supported by this Storage daemon
# To connect, the Director's bacula-dir.conf must have the
# same Name and MediaType.
#

Device {
Name = FileStorage
Media Type = File
Archive Device = /opt/backups
LabelMedia = yes; # lets Bacula label unlabeled media
Random Access = Yes;
AutomaticMount = yes; # when device opened, read it
RemovableMedia = no;
AlwaysOpen = no;
}

#
# An autochanger device with two drives
#
#Autochanger {
# Name = Autochanger
# Device = Drive-1
# Device = Drive-2
# Changer Command = "/usr/lib/bacula/mtx-changer %c %o %S %a %d"
# Changer Device = /dev/sg0
#}

#Device {
# Name = Drive-1 #
# Drive Index = 0
# Media Type = DLT-8000
# Archive Device = /dev/nst0
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# AutoChanger = yes
# #
# # Enable the Alert command only if you have the mtx package loaded
# # Note, apparently on some systems, tapeinfo resets the SCSI controller
# # thus if you turn this on, make sure it does not reset your SCSI
# # controller. I have never had any problems, and smartctl does
# # not seem to cause such problems.
# #
# Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
# If you have smartctl, enable this, it has more info than tapeinfo
# Alert Command = "sh -c 'smartctl -H -l error %c'"
#}

#Device {
# Name = Drive-2 #
# Drive Index = 1
# Media Type = DLT-8000
# Archive Device = /dev/nst1
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# AutoChanger = yes
# # Enable the Alert command only if you have the mtx package loaded
# Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
# If you have smartctl, enable this, it has more info than tapeinfo
# Alert Command = "sh -c 'smartctl -H -l error %c'"
#}

#
# A Linux or Solaris LTO-2 tape drive
#
#Device {
# Name = LTO-2
# Media Type = LTO-2
# Archive Device = /dev/nst0
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# Maximum File Size = 3GB
## Changer Command = "/usr/lib/bacula/mtx-changer %c %o %S %a %d"
## Changer Device = /dev/sg0
## AutoChanger = yes
# # Enable the Alert command only if you have the mtx package loaded
## Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
## If you have smartctl, enable this, it has more info than tapeinfo
## Alert Command = "sh -c 'smartctl -H -l error %c'"
#}

#
# A Linux or Solaris LTO-3 tape drive
#
#Device {
# Name = LTO-3
# Media Type = LTO-3
# Archive Device = /dev/nst0
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# Maximum File Size = 4GB
## Changer Command = "/usr/lib/bacula/mtx-changer %c %o %S %a %d"
## Changer Device = /dev/sg0
## AutoChanger = yes
# # Enable the Alert command only if you have the mtx package loaded
## Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
## If you have smartctl, enable this, it has more info than tapeinfo
## Alert Command = "sh -c 'smartctl -H -l error %c'"
#}

#
# A Linux or Solaris LTO-4 tape drive
#
#Device {
# Name = LTO-4
# Media Type = LTO-4
# Archive Device = /dev/nst0
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes;
# RemovableMedia = yes;
# RandomAccess = no;
# Maximum File Size = 5GB
## Changer Command = "/usr/lib/bacula/mtx-changer %c %o %S %a %d"
## Changer Device = /dev/sg0
## AutoChanger = yes
# # Enable the Alert command only if you have the mtx package loaded
## Alert Command = "sh -c 'tapeinfo -f %c |grep TapeAlert|cat'"
## If you have smartctl, enable this, it has more info than tapeinfo
## Alert Command = "sh -c 'smartctl -H -l error %c'"
#}

#
# A FreeBSD tape drive
#
#Device {
# Name = DDS-4
# Description = "DDS-4 for FreeBSD"
# Media Type = DDS-4
# Archive Device = /dev/nsa1
# AutomaticMount = yes; # when device opened, read it
# AlwaysOpen = yes
# Offline On Unmount = no
# Hardware End of Medium = no
# BSF at EOM = yes
# Backward Space Record = no
# Fast Forward Space File = no
# TWO EOF = yes
# If you have smartctl, enable this, it has more info than tapeinfo
# Alert Command = "sh -c 'smartctl -H -l error %c'"
#}

#
# Send all messages to the Director,
# mount messages also are sent to the email address
#
Messages {
Name = Standard
director = servercentos03-dir = all
}
Fichero: bconsole.conf

#
# Bacula User Agent (or Console) Configuration File
#

Director {
Name = servercentos03-dir
DIRport = 9101
address = 192.168.1.15
Password = "989669"
}

Fichero: bat.conf

#
# Bacula Administration Tool (bat) configuration file
#

Director {
Name = servercentos03-dir
DIRport = 9101
address = 192.168.1.15
Password = "989669"
}
Tambin es muy importante crear si es que no existen, los distintos directorios que
especificamos dichos ficheros de configuracin.

mkdir /opt/backups

mkdir /opt/restaurar

mkdir /opt/restaurar/servercentos03

mkdir /opt/restaurar/CATALOG

Para iniciar por primera vez el servicio de Bacula, ejecute el siguiente comando:

service bacula start

Para reiniciar el servicio, ejecute:

service bacula restart

Para detener el servicio ejecute:

service bacula stop

Para iniciarlo nuevamente volvemos a escribir:

service bacula start

Para agregar el servicio al arranque del sistema ejecute:

chkconfig --level 345 bacula on

Para instalar la herramienta de administracin de Bacula (bat) ejecute el siguiente mandato de


instalacin:

yum install bacula-console-bat

Para poder utilizarla, tenis que iniciar una seccin grfica en CentOS v6.x, y haga clic en el
botn: "Aplicaciones" y seleccione el men: "Herramientas del sistema" para hacer clic en la
opcin: "Bacula Bat Console". Entonces se inicia la herramienta de administracin grfica de
Bacula.

Para gestionar Bacula va consola, solo basta escribir el comando:

bconsole

Vous aimerez peut-être aussi