: Introducción
Antes
de comenzar con la instalación y configuración del Bacula, en el
caso que lo montemos en una Distribución basada en REDHAT, debemos
cercioranos que las librerías que se detallan estén instaladas:
- gcc
- gcc-c++
- libstdc++
- Mysql o Postgresql
Echo
este chequeo podemos compilar el source de bacula.
En
este ítem la instalación esta referida para dos distribuciones de
Linux:
- RedHat/CentOS
- Debian/Ubuntu
: Aspectos principales
Antes
de empezar debemos saber que siempre exiten dos formas de
instalacion:
La
primer opcion es a travez de los archivos source (tar.gz), los cuales
se deben compilar y luego instalar (configure, make y make install )
y la segunda opcion y la “recomendada” es por medio de los
repositorio del sistema operativo.
Aqui
trataremos de explicar las dos opciones, ya que cada una de ellas
tiene su ventaja y desventaja.
:: Ventajas
Instalacion
por Source
- Ultima Version
- Compilacion personalizada
Instalacion
por Repositorio
- Actualizacion rapida y facil
- Instalacion binaria
:: Desventaja:
Instalacion
por Source
- Se debe recompilar la aplicacion cada vez que necesitamos actualizar
Instalacion
por repositorio
- No suele tener la ultima version release, y en casos como debian tiene varias versiones mas viejas.
Pero
tenemos una tercera opcion que es un mix entre compilar y
repositorios, que seria tratar de instalar los archivos compilados y
si nos pidiese instalar alguna libreria extra hacerso desde los
repositorio directamente, asi nos aseguramos una instalacion limpia y
correcta, ademas de poderlas ir actualizando sin problemas cuando sea
necesario.
: Instalación
:: Instalacion por source de Bacula
Aqui
vamos a utilizar las dos opciones, para instalar la base de datos, lo
haremos a travez del repisotorio, pero la instalacion de bacula lo
hacemos compilando e instalando.
::: Intalacion de Bacula en REDHAT/CentOS con MySQL
Para
la instalación de la ultima versión de Bacula estable debemos bajar
el paquete tar desde la pagina oficial de Bacula: www.bacula.org.
La
instalación en REDHAT/CentOS debe tener la siguiente características
para su configuración:
1.-
Mysql instalado, si no lo esta, deberemos instalar los siguientes
paquetes:
yum install mysql.x86, mysql-server y mysql-devel
yum install mysql.x86, mysql-server y mysql-devel
2.-
Asegurarse que no falten las librerías gcc, gcc-c++, libstdc++
yum install gccXX gccXX-c++ libstdc++ libstdc++XX-devel (chequear siempre la ultima versión de las librerías)
Ahora
bien, instalado lo referido en los puntos 1 y 2, procederemos a
descomprimir el paquete tar en el path: /usr/local/src, luego
crearemos un script que lo llamaremos "cfgure.sh" y lo
copiamos dentro del directorio del Bacula, este script configurara,
compilara e instalara al director de bacula automáticamente a
continuación transcribo el script propuesto :
CFLAGS="-g
-O2 -Wall" \
./configure
\
--sbindir=/home/bacula/bacula/bin
\
--sysconfdir=/home/bacula/bacula/bin
\
--with-pid-dir=/home/bacula/bacula/bin/working
\
--with-subsys-dir=/home/bacula/bacula/bin/working
\
--enable-smartalloc
\
--with-mysql
\
--with-working-dir=/home/bacula/bacula/bin/working
\
--with-dump-email=bacula@sudominio.com.ar
\
--with-job-email=bacula@sudominio.com.ar
\
--with-smtp-host=mail.sudominio.com.ar
\
--enable-tray-monitor
\
--enable-readline
\
make
make
install
::: Intalacion de Bacula en Debian/Ubuntu con MySQL
1.-
Liberia mínima necesaria para compilar el paquete tar:
- Instalar Mysql en primer lugar.
- Librerías del sistema operativo.
Mysql:
apt-get
install mysql-server-5.1
Librerias:
apt-get
install gcc-4.5 gcc binutils-doc gcc-4.5-locales gcc-multilib
autoconf automake1.9 libtool flex bison gdb gcc-doc gcc-4.4-multilib
libmudflap0-4.4-dev gcc-4.4-doc gcc-4.4-locales libgcc1-dbg
libgomp1-dbg libmudflap0-dbg gcc-4.5-multilib libmudflap0-4.5-dev
gcc-4.5-doc binutils-gold glibc-doc automake g++-4.4
libstdc++6-4.4-dev g++-multilib g++-4.4-multilib libstdc++6-4.4-dbg
libstdc++6-4.4-doc lib32stdc++6-4.4-dbg
2.-
Luego creamos el siguiente archivo ejecutable que lo llamaremos
cfgure.sh, este script configurara, compilara e instalara al director
de bacula automáticamente. Esta configuración lo va instalar bajo
la home del usuario que este utilizando para bacula (en este caso
bajo bacula)
CFLAGS="-g
-O2 -Wall" \
./configure \
--sbindir=$HOME/bacula/bin \
--sysconfdir=$HOME/bacula/bin \
--with-pid-dir=$HOME/bacula/bin/working \
--with-subsys-dir=$HOME/bacula/bin/working \
--enable-smartalloc \
--with-mysql \
--with-working-dir=$HOME/bacula/bin/working \
--with-dump-email=bacula@sudominio.com.ar \
--with-job-email=bacula@sudominio.com.ar \
--with-smtp-host=mail.sudominio.com.ar \
--enable-tray-monitor \
--enable-readline \
make
make install
./configure \
--sbindir=$HOME/bacula/bin \
--sysconfdir=$HOME/bacula/bin \
--with-pid-dir=$HOME/bacula/bin/working \
--with-subsys-dir=$HOME/bacula/bin/working \
--enable-smartalloc \
--with-mysql \
--with-working-dir=$HOME/bacula/bin/working \
--with-dump-email=bacula@sudominio.com.ar \
--with-job-email=bacula@sudominio.com.ar \
--with-smtp-host=mail.sudominio.com.ar \
--enable-tray-monitor \
--enable-readline \
make
make install
:: Instalacion por repositorio de Bacula
Como
dijimos en aspectos generales debemos tener en cuenta que esta opción
instala una versión de bacula anterior. Y aqui tambien repetimos el
proceso de instalacion, primero la base de datos y luego el bacula.
::: Bacula sobre Ubuntu 12.04 LTS
:::: Base de datos:
apt-get
install mysql-server-5.5
:::: Bacula:
apt-get
install bacula-client bacula-common bacula-common-mysql
bacula-console bacula-director-common bacula-director-mysql bacula-fd
bacula-sd bacula-sd-mysql bacula-server bacula-traymonitor
::: Bacula sobre Ubuntu 10.10
:::: Base de datos:
apt-get
install mysql-server-5.1
:::: Bacula:
apt-get
install bacula-client bacula-common bacula-common-mysql
bacula-console bacula-director-common bacula-director-mysql bacula-fd
bacula-sd bacula-sd-mysql bacula-server dbconfig-common libpython2.6
bacula-doc bacula-traymonitor mt-st resolvconf myspell-en-us
myspell-es
::: Bacula sobre Debian 6.0
apt-get
install bacula-client bacula-common bacula-common-mysql
bacula-console bacula-director-common bacula-director-mysql bacula-fd
bacula-sd bacula-sd-mysql bacula-server bacula-doc bacula-traymonitor
::: Bacula sobre Debian 6.0 con Postgresql
Para
una correcta instalación debemos instalar en primer lugar la base de
datos y luego el software de bacukp:
- Postgresql-8.4
- Bacula
Instalamos
el postgresql desde los repositorio:
apt-get
install postgresql-8.4 postgresql-contrib-8.4 postgresql-client-8.4
postgresql-pltcl-8.4 postgresql-plperl-8.4 postgresql-doc-8.4
libdbd-pg-perl openssl-blacklist tclreadline uuid
Instalamos
el bacula:
apt-get
install bacula-server bacula-common-pgsql bacula-director-pgsql
bacula-console bacula-sd-pgsql bacula-fd bacula-doc
bacula-traymonitor
: Configuración
:: Configuración del Director (bacula-dir.conf)
En
la configuración del Director debemos tener en cuenta tres archivos
de configuracion
- bacula-dir.conf
- bacula-sd.conf
- bacula-fd.conf
Para
entender un poquito la configuración del director (bacula-dir.conf),
es un archivo maestro que maneja el storage, y los clientes.
Pero
con solo este archivo no podremos hacer que bacula guardes los
volumen físicamente, pare ellos necesitamos del daemon storage que
utiliza el archivo de configuración bacula-sd.conf, y en este se
indica el lugar donde debe escribir los volúmenes y por ultimo es el
archivo de configuracion del file deamon (bacula-fd,conf) que
establece entre el servidor de bacula y el servidor a backupear.
El
archivo que configura el director se llama bacula-dir.conf, aquí se
declara el director, storage, monitor, clientes y mensajes que enviá
el bacula avisando las novedades que ocurren con los backups. Este
archivo según la forma de instalacion que hayamos decidido tendra
una ubicacion particular, osea, si nuestra instalacion fue por source
se encontrara donde se definio en el script presentado:
CFLAGS="-g
-O2 -Wall" \
./configure \
--sbindir=$HOME/bacula/bin \
--sysconfdir=$HOME/bacula/bin \
--with-pid-dir=$HOME/bacula/bin/working \
--with-subsys-dir=$HOME/bacula/bin/working \
./configure \
--sbindir=$HOME/bacula/bin \
--sysconfdir=$HOME/bacula/bin \
--with-pid-dir=$HOME/bacula/bin/working \
--with-subsys-dir=$HOME/bacula/bin/working \
La
opcion de configure --sysconfdir nos permite definir donde
encontraremos los archivos de configuracion del bacula, en este caso
esta en el mismo directorio que los archivos binarios:
$HOME/bacula/bin. Para el caso de la instalacion por repositorio los
archivos de configuracion ya esta definido su instalacion en
/etc/bacula (Debian/Ubuntu). Este ejemplo muestra las diferencias de
una instalación echa con el paquete tar, a través del script
"cfgure.sh" y la instalacion por repisotorio.
::: Source
Director
{
Name
= Bacula-Director-1-dir
DIRport
= 9101
QueryFile
= "/home/bacula/bacula/bin/query.sql"
WorkingDirectory
= "/home/bacula/bacula/bin/working"
PidDirectory
= "/home/bacula/bacula/bin/working"
Maximum
Concurrent Jobs = 20
Password
= "D1r3ct0r1" # Console password
Messages
= Daemon
DirAddress
= 111.11.111.111
Heartbeat
Interval = 1
}
::: Repositorio
Director
{
Name
= Bacula-Teco-2-dir
DIRport
= 9101
QueryFile
= "/etc/bacula/scripts/query.sql"
WorkingDirectory
= "/var/lib/bacula"
PidDirectory
= "/var/run/bacula"
Maximum
Concurrent Jobs = 20
Password
= "b4cvl4t3c02"
Heartbeat
Interval = 1
Messages
= Daemon
DirAddress
= 111.11.111.111
}
Para
los demas Storage, Catalog, Messages, Console y Client su
configuracion es la misma. Pero explicare que significa cada opcion.
::: Storage:
Define
el nombre del demonio de almacenamiento
Storage
{
Name
= Strg-Raidubuntu
Address
= 111.11.111.111
SDPort
= 9103
Password
= "strgD1r3ct0r1"
Device
= "Storage-Raidubuntu"
Media
Type = File
}
Name:
Definimos un nombre para luego vincularlo en el archivo cliente
Address:
Es la direccion IP o DNS del Daemon Storage (Suele estar en el
mismo servidor que el Director)
SDPort:
Port de comunicion del Storage Daemon.
Password:
Password para definir una conexion segura
Device: Nombre
del recurso de soporte que utilizamos en el archivo bacula-sd.conf
Media
Type: Tipo de Soporte que utilizaremos
::: Catalog
Es
donde se define que catalogar, bacula no permite varias conexiones a
distintos servidores de base de datos, pero si se puede definir
varias bases de datos, por lo tanto aqui encontramos los parametros
de conexion a la base de datos.
Catalog
{
Name
= MyCatalog
dbname
= "bacula"; dbuser = "bacula"; dbpassword = ""
}
Name:
Nombre del Catalogo
dbname:
Nombre de la base de datos
dbuser:
Usuario de la base con privilegios para administrar
dbpassword:
Password del usuario de la base
::: Messages
Es
fundamental su configuración, debido a que nos permite enterarnos de
las acciones que ejecuta, ya sea en forma correcta o incorrecta y
para ello utiliza enviando un mail con las novedades que ocurran.
Name:
Es el nombre del recurso Messages, el cual se utilizara para
atarlo con un Job o Demonio
mailcommand:
Este comando nos permite especificar exactamente como enviar el
mail
operatorcommand:
Este comando es similar al anterior pero nos permite enviarlo al
Operador
mail:
Aqui definimos el mail, donde
enviara las acciones del sistema, el cual sera visto por el
administrador
operator:
Aqui definimos el mail del operador, el cual recibira las acciones
de su perfil
console:
Envia el mensaje al bacula console
append:
Permite almacenar en un archivo los mensajes que se sucedan
catalog:
Envia el mensaje al catalogo de la base de datos, y escribe la
tabla Log.
Aca
mostramos los dos tipos de configuración del recurso Messages
Messages
{
Name
= Standard
mailcommand
= "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\
(Bacula-Director-1\)
\<%r\>\" -s \"Bacula: %t %e of %c
%l\" %r"
operatorcommand
= "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\
(Bacula-Director-1\)
\<%r\>\" -s \"Bacula: Necesita
intervención %j\" %r"
mail
= su-usuario@.sudominio.com.ar = all, !skipped
operator
= su-usuario@.sudominio.com.ar = mount
console
= all, !skipped, !saved
append
= "/home/bacula/bacula/bin/working/log" = all, !skipped
catalog
= all
}
Messages
{
Name
= Daemon
mailcommand
= "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f
\"\(Bacula-Director-1\) \<%r\>\" -s
\"Bacula-Director-1 daemon message\" %r"
mail
= su-usuario@sudominio.com.ar = all, !skipped
console
= all, !skipped, !saved
append
= "/home/bacula/bacula/bin/working/log" = all, !skipped
}
::: Console
Monitor
contiene la informacion para poder conectarse al Director, Clientes y
Demonios que desea supervisar
Name:
Se lo define con el mismo nombre del servidor
Password:
Este password es el que se encuentra en el bacula-dir.conf
CommandACL:
Permite en esta caso restringir el tray-monitor y obtener asi solo
del director
Console
{
Name
= Bacula-Director-mon
Password
= "D1r3ct0r1m0n"
CommandACL
= status, .status
}
Como
un directorio maneja varios clientes, se podría detallar todo sobre
el bacula.conf, pero quedaría muy desprolijo, por eso se utiliza el
include (@) para una configuración limpia y entendible, esto lo
colocaremos al final del archivo, bacula-dir.conf y lo dirigiremos
hacia la carpeta que previamente creamos "client", ejemplo
de esto nos quedaría así:
@/home/bacula/bacula/client/Myself.conf
(@ : Hace un include de los archivos que le indiquemos)
@/home/bacula/bacula/client/Myself.conf
@/home/bacula/bacula/client/Gta.conf
@/home/bacula/bacula/client/Gtc.conf
Para
tener en cuenta:
El
bacula-dir.conf tiene tres password, uno es el correspondiente al
Director, el cual se configura en los archivos de configuración de
las consolas bat.conf y bconsole.conf, el segundo es para conectarse
con el storage daemon y el tercer es para el monitor, el cual se
utiliza en los archivo (bacula-fd.conf y bacula-sd.conf), pero esto
lo veremos en el ítem siguiente con mas detalles.
- El primero es el Password del Director que esta en la cabecera del archivo
- El Segundo password corresponde al Storage Daemon.
- El tercer es la Consola, es para que los client puedan ser monitoreados por el Director
:: Configuracion del FileDaemon (bacula-fd.conf)
Se
instala en los Servidores a Backupear, es el cliente que permite la
conexión con el servidor, algunos tip's con respecto al "lenguaje"
del archivo de configuración bacula-fd.conf:
::: Password del Client (ej: Mail.conf)
Director
{
Name
= Bacula-Director-1-dir
Password
= "ClientMail"
}
::: Password de Console
Director
{
Name
= Bacula-Director-1-mon
Password
= "D1r3ct0r1m0n"
Monitor
= yes
}
Como
ejemplo veremos el bacula-fd.conf del Bacula-Director-1,
bacula-fd.conf:
Director
{
Name
= Bacula-Director-1-dir
Password
= "D1r3ct0r1Client"
}
Director
{
Name
= Bacula-Director-1-mon
Password
= "D1r3ct0r1m0n"
Monitor
= yes
}
FileDaemon
{
Name
= Bacula-Director-1-fd
FDport
= 9102
WorkingDirectory
= /home/bacula/bacula/bin/working
Pid
Directory = /home/bacula/bacula/bin/working
Maximum
Concurrent Jobs = 20
}
Messages
{
Name
= Standard
director
= Bacula-Director-1-dir = all, !skipped, !restored
}
:: Configuracion del Storage Daemon (bacula-sd.conf)
Algunos
tip's con respecto al "lenguaje" del archivo de
configuración bacula-sd.conf: Los password correspondientes deben
respetar lo declarado en bacula-dir.conf
::: Pasword de Storage
Director
{
Name
= Bacula-Director-1-dir
Password
= "strgD1r3ct0r1"
}
::: Password de Console
Director
{
Name
= Bacula-Director-1-mon
Password
= "D1r3ct0r1m0n"
Monitor
= yes
}
::: Device
Es
el que indica donde se alojaran los volúmenes
Device
{
Name
= Storage-Raidubuntu
Media
Type = File
Archive
Device = /raid/backups/Raidubuntu
LabelMedia
= yes;
Random
Access = Yes;
AutomaticMount
= yes;
RemovableMedia
= no;
AlwaysOpen
= no;
}
Como
ejemplo veremos el bacula-sd.conf del Bacula-Director-1,
bacula-sd.conf:
Storage
{
Name
= Bacula-Director-1-sd
SDPort
= 9103
WorkingDirectory
= /home/bacula/bacula/bin/working
Pid
Directory = /home/bacula/bacula/bin/working
Maximum
Concurrent Jobs = 20
}
Director {
Name
= Bacula-Director-1-dir
Password
= "strgD1r3ct0r1"
}
Director {
Name
= Bacula-Director-1-mon
Password
= "D1r3ct0r1m0n"
Monitor
= yes
}
Device
{
Name
= Storage-Raidubuntu
Media
Type = File
Archive
Device = /raid/backups/Raidubuntu
LabelMedia
= yes;
Random
Access = Yes;
AutomaticMount
= yes;
RemovableMedia
= no;
AlwaysOpen
= no;
}
Messages {
Name
= Standard
director
= Bacula-Director-1-dir = all
}
:: Configuración de los Clientes en el Director
Este
archivo es la configuracion de los clientes propiamentes dichos, de
los cuales se van hacer el backup
1.-
Nota
El
cliente del Director debe llamarse Myself.conf, el cual incluira:
a.-
Job de los archivos,
b.-
Job del Catalogo del Bacula (Base de datos)
c.-
Job para Restore de los Backups echos por este Director
2.-
Cliente del Director
a.-
Clientes: Servers para hacer Backups
Lo
que queremos definir son los rescursos del Pool para que reutilize
despues de cierto tiempo los volumenes creados y asi el crecimiento
de espacio en disco que tengamos no se nos acabe rapidamente. Como
veran estan calculados para guardar como maximo un mes de volumenes.
Para este caso utilizaremos las plantillas definida en el Anexo
"Plantillas de Clientes" donde debemos reemplazar los
siguientes valores:
1.-
Variables Generales:
Variables a cambiar
- Cambiar la palabra Server
- En Address = server.senasa.gov.ar
- En Password = "PPP"
- En Priority = nn
- En Schedule = HH:MM
- En Maximum Volumes = X
- En Volume Retention = DD days
2.-
Pool: Para guardar un histórico de Backups de 2 Semanas
Maximum
Volumes = X
Pool
--> Full --> Maximum Volumes = 2
Pool
-->Diff --> Maximum Volumes = 2
Pool
--> Inc --> Maximum Volumes = 8
Volume
Retention = DD days
Pool
--> Full --> Volume Retention = 10 days
Pool
-->Diff --> Volume Retention = 10 days
Pool
--> Inc --> Volume Retention = 10 days
Para
guardar un histórico de Backups de 3 Semanas
Maximum
Volumes
Pool
--> Full --> Maximum Volumes = 3
Pool
-->Diff --> Maximum Volumes = 3
Pool
--> Inc --> Maximum Volumes = 12
Volume
Retention = DD days
Pool
--> Full --> Volume Retention = 14 days
Pool
-->Diff --> Volume Retention = 14 days
Pool
--> Inc --> Volume Retention = 14 days
Para
guardar un histórico de Backups de 4 Semanas
Maximum
Volumes
Pool
--> Full --> Maximum Volumes = 4
Pool
-->Diff --> Maximum Volumes = 4
Pool
--> Inc --> Maximum Volumes = 15
Volume
Retention = DD days
Pool
--> Full --> Volume Retention = 20 days
Pool
-->Diff --> Volume Retention = 20 days
Pool
--> Inc --> Volume Retention = 20 days
Para
guardar un histórico de Backups de Horarios
Maximum
Volumes
Pool
--> Full --> Maximum Volumes = 4
Pool
-->Diff --> Maximum Volumes = 4
Pool
--> Inc --> Maximum Volumes = 365
Volume
Retention = DD days
Pool
--> Full --> Volume Retention = 15 days
Pool
-->Diff --> Volume Retention = 15 days
Pool
--> Inc --> Volume Retention = 15 days
:: Configuración de Bconsole y Bat
::: Introducción
El
archivo de configuración para las consolas llevan los mismos
parámetros
Bat-->bat.conf
bconsole
-->bconsole.conf
Director
{
Name
= Bacula-Director-1-dir
DIRport
= 9101
address
= baculadirector1.tudominio.com.ar
Password
= "D1r3ct0r1"
}
Director
{
Name
= Bacula-Director-2-dir
DIRport
= 9101
address
= baculadirector2.tudominio.com.ar
Password
= "D1r3ct0r2"
}
....
: Administración de Bacula
:: Consola Bconsole:
Ingresando
a la consola
Para poder ejecutar al consola textual debemos tener en primer lugar instalado la consola de bacula (archivos: bconsole y bconsole.conf), esta se hace desde los mismo archivos de instalación de Bacula.
Echo esto escribimos en nuestro prompt el comando bconsole y nos entregrar una pantalla de texto como la siguiente:
Para poder ejecutar al consola textual debemos tener en primer lugar instalado la consola de bacula (archivos: bconsole y bconsole.conf), esta se hace desde los mismo archivos de instalación de Bacula.
Echo esto escribimos en nuestro prompt el comando bconsole y nos entregrar una pantalla de texto como la siguiente:
---------------------------------------------------------
[root@smarcnet
~]# bconsole
Available
Directors:
-->
1: Bacula-Director-1-dir at 111.11.111.111:9101
-->
2: Bacula-Director-2-dir at 172.26.160.60:9101
-->
3: Bacula-Director-3-dir at 172.26.160.71:9101
-->
4: Bacula-Director-4-dir at 172.26.160.209:9101
-->
5: bacula-teco-dir at 10.0.48.16:9101
-->
6: Bacula-Teco-2-dir at 111.11.111.111:9101
Select
Director by entering a number: 1 <--
---------------------------------------------------------
Seleccionamos
el director al cual queremos entrar, colocando el numero que se
detalla a la izquierda y tienen una flecha, en el ejemplo de arriba
seleccionamos el Bacula-Director-1 al cual entraremos una vez que
presionemos el enter.
Estando
dentro de la consola podremos ejecutar comandos en la consola, pero
antes una salvedad, el asteriscos que se encuentra al final del
ejemplo siguiente es el prompt de la consola, lo que nos dice que ya
podemos ejecutar algún comando.
---------------------------------------------------------
[root@smarcnet
~]# bconsole
Available
Directors:
1:
Bacula-Director-1-dir at 111.11.111.111:9101
2:
Bacula-Director-2-dir at 172.26.160.60:9101
3:
Bacula-Director-3-dir at 172.26.160.71:9101
4:
Bacula-Director-4-dir at 172.26.160.209:9101
5:
bacula-teco-dir at 10.0.48.16:9101
6:
Bacula-Teco-2-dir at 111.11.111.111:9101
Select
Director by entering a number: 1
Connecting
to Director 111.11.111.111:9101
1000
OK: Bacula-Director-1-dir Versión: 5.0.3 (04 August 2010)
Enter
a period to cancel a command.
---------------------------------------------------------
::: Comandos útiles de la consola
Detallo
algunos de los comandos que mas se utilizan para la administración:
::: Help:
Muestra
la lista de comandos que se pueden correr por consola
*help
Command
Description
=======
===========
add:
Add media to a pool
autodisplay:
Autodisplay console messages
automount:
Automount after label
cancel:
Cancel a job
create:
Create DB Pool from resource
delete:
Delete volume, pool or job
disable:
Disable a job
enable:
Enable a job
estimate:
Performs FileSet estimate, listing gives full listing
exit:
Terminate Bconsole session
gui:
Non-interactive gui mode
::: Status:
Este
comando tiene varias formas de emplearse
*status
Status
available for:
1:
Director
2:
Storage
3:
Client
4:
All
Select
daemon type for status (1-4): 1
Ahora
intentaremos comprender que nos muestra el comando status:
::: Director:
Muestra
los backups que se realizaran, si estan corriendo algún Job y los
realizados : Backups a Realizar:
Scheduled
Jobs:
Level
Type Pri Scheduled Name Volume
================================================================
Incremental
Backup 5 18-abr-11 23:05 Backup-Mail Mail-Inc-0408
Incremental
Backup 15 18-abr-11 23:15 Backup-Gta Gta-Inc-0410
Incremental
Backup 20 18-abr-11 23:20 Backup-Gtc
Incremental
Backup 20 18-abr-11 23:25 Backup-Gte Gte-Inc-0412
Full
Backup 35 18-abr-11 23:35 Backup-Mesayuda Mesayuda-Full-0004
--------------------------------------------------------------------------------------------------------------------------------------------------
Jobs
Corriendo:
Running
Jobs:
Console
connected at 18-abr-11 16:08
No
Jobs running.
====
Backups
realizados :
Terminated
Jobs:
JobId
Level Files Bytes Status Finished Name
==================================================================
669
Incr 105 1.901 G OK 16-abr-11 00:29 Backup-Bacula-Director-1
670
Full 1 2.473 G OK 16-abr-11 00:33 Backup-Catalog-Bacula-Director-1
671
Full 3,386 138.9 G OK 17-abr-11 17:39 Backup-Mail
673
Full 1,057 319.2 G OK 18-abr-11 04:14 Backup-Gta
674
Full 3206 50.19 G OK 18-abr-11 05:57 Backup-Gtc
==================================================================
::: Storage :
Muestra
el Storage o los múltiples storage configurados.
Cuando
en el Director solo tenemos definido un solo storage nos muestra
directamente el log con la información siguiente:
Este
caso es cuando no tiene ningún proceso esta ejecutándose, pero en
caso contrario donde dice "Running Jobs" y "Used
Volume status" nos muestra que jobs y volumen esta usando.
*status
storage
The
defined Storage resources are:
1:
Strg-Bacula-Director-5
2:
Strg-Bacula-Director-5-Horario
Select
Storage resource (1-2): 1
Connecting
to Storage daemon Strg-Bacula-Director-5 at 172.26.160.102:9103
Bacula-Director-5-sd
Versión: 5.0.3 (04 August 2010) x86_64-unknown-linux-gnu redhat
Daemon
started 20-abr-11 20:40. Jobs: run=8, running=0.
Heap:
heap=471,040 smbytes=298,987 max_bytes=367,203 bufs=122 max_bufs=139
Sizes:
boffset_t=8 size_t=8 int32_t=4 int64_t=8
Running
Jobs:
Writing:
Full Backup job Backup-BH1-Horario JobId=40
Volume="BH1-Horario-Inc-0011"
pool="BH1-Horario-Inc"
device="Strg-Storage-BD5-Horario" (/raid/Horario)
spooling=0
despooling=0 despool_wait=0
Files=25
Bytes=388,632,042 Bytes/sec=2,034,722
FDReadSeqNo=6,134
in_msg=6060 out_msg=5 fd=8
====
Jobs
waiting to reserve a drive:
====
Terminated
Jobs:
JobId
Level Files Bytes Status Finished Name
==================================================================
31
Full 0 0 Cancel 20-abr-11 20:40 Backup-BH1-Horario
33
Full 0 0 Cancel 20-abr-11 20:40 Backup-BH1-Horario
35
Full 904 15.07 G Cancel 20-abr-11 22:42 Backup-BH1-Horario
====
Device
status:
Device
"Strg-Storage-BD5" (/raid) is not open.
Device
"Strg-Storage-BD5-Horario" (/raid/Horario) is mounted with:
Volume:
BH1-Horario-Inc-0011
Pool:
BH1-Horario-Inc
Media
type: File
Total
Bytes=388,878,545 Blocks=6,028 Bytes/block=64,512
Positioned
at File=0 Block=388,878,544
====
Used
Volume status:
BH1-Horario-Inc-0011
on device "Strg-Storage-BD5-Horario" (/raid/Horario)
Reader=0
writers=1 devres=0 volinuse=1
====
*
::: List
Lista
los pool, volúmenes y Jobs como lo muestran los siguientes ejemplos:
*
list pool
PoolId
|
Name
|
NumVols
|
MaxVols
|
PoolType
|
LabelFormat
|
1
|
Bacula-Director-5-Full
|
0
|
2
|
Backup
|
Bacula-Director-5-Full-
|
2
|
Bacula-Director-5-Inc
|
0
|
8
|
Backup
|
Bacula-Director-5-Inc-
|
3
|
Bacula-Director-5-Diff
|
0
|
2
|
Backup
|
Bacula-Director-5-Diff-
|
4
|
Bacula-Director-5-Catalogo
|
0
|
5
|
Backup
|
Bacula-Director-5-Catalogo-
|
5
|
BH1-Normal-Full
|
0
|
3
|
Backup
|
BH1-Normal-Full-
|
*list
pool=Bacula-Director-5-Full
PoolId
|
Name
|
NumVols
|
MaxVols
|
PoolType
|
LabelFormat
|
1
|
Bacula-Director-5-Full
|
0
|
2
|
Backup
|
Bacula-Director-5-Full-
|
*list
jobs
JobId | Name | StartTime | Type | Level | JobFiles | JobBytes | JobStatus |
2 | Backup-BH1-Horario | 2011-04-18 20:05:02 | B | F | 0 | 0 | f |
1 | Backup-BH1-Horario | 2011-04-18 20:05:03 | B | F | 0 | 0 | f |
*list
JobId=2
JobId | Name | StartTime | Type | Level | JobFiles | JobBytes | JobStatus |
2 | Backup-BH1-Horario | 2011-04-18 20:05:02 | B | F | 0 | 0 | f |
*list
volume
Pool:
Bacula-Director-2-Full
MediaId | VolumeName | VolStatus | Enabled | VolBytes | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten |
36 | Bacula-Director-2-Full-0036 | Used | 1 | 624,147,655 | 0 | 864,000 | 1 | 0 | 0 | File | 2011-04-03 18:55:20 |
44 | Bacula-Director-2-Full-0044 | Used | 1 | 290,812,520 | 0 | 864,000 | 1 | 0 | 0 | File | 2011-04-17 18:34:48 |
Pool:
Bacula-Director-2-Diff
MediaId | VolumeName | VolStatus | Enabled | VolBytes | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten |
37 | Bacula-Director-2-Diff-0037 | Used | 1 | 282,160,775 | 0 | 864,000 | 1 | 0 | 0 | File | 2011-04-14 01:50:54 |
40 | Bacula-Director-2-Diff-0040 | Used | 1 | 717,552,834 | 0 | 864,000 | 1 | 0 | 0 | File | 2011-03-17 03:13:46 |
*list
volume=Sdcfile1-Diff-0035
MediaId | VolumeName | VolStatus | Enabled | VolBytes | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten |
35 | Sdcfile1-Diff-0035 | Append | 1 | 579,985,782,410 | 135 | 1,209,600 | 1 | 0 | 0 | File | 2011-04-14 00:28:12 |
::: Messages:
Muestra
el mismo mensaje que se detalla en el ítem "Log de correcta
realización del Backups" pero ademas muestra los mensajes de
error de los backups que no se hicieron por algún motivo.
-------------------------------------------------------------------
*messages
VER
("Log de correcta realización del Backups" )
-----------------------------------------------------------------
::: Restore:
-------------------------------------------------------------------
*restore
First
you select one or more JobIds that contain files
to
be restored. You will be presented several methods
of
specifying the JobIds. Then you will be allowed to
select
which files from those JobIds are to be restored.
To
select the JobIds, you have the following choices:
1: List last 20 Jobs run
2: List Jobs where a given File is saved
3: Enter list of comma separated JobIds to select
4: Enter SQL list command
5: Select the most recent backup for a client
6: Select backup for a client before a specified time
7: Enter a list of files to restore
8: Enter a list of files to restore before a specified time
9: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified
time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Select
ítem: (1-13):
-------------------------------------------------------------------
Este
comando es para restaurar backups, en general se utiliza la opcion
5 cuando la cantidad de archivos a recuperar es grande.
La
opcion 6 se utiliza para recuperar muchos archivos de una
fecha anterior al ultimo Full colocando en el prompt la fecha y la
hora como se indica la ayuda que desplegá esta opcion cuando la
ejecutamos.
La
opcion 3 es para poder recuperar rápidamente archivos de uno
o dos días atrás y que sea su cantidad muy pequeña, el único
inconveniente es que hay que conocer el JobId, que lo podremos
consultar con el comando "list" como se indica en los
ejemplos del mismo, luego de hacer esto lo ingresamos colocando el
JobId (Que es un numero) y presionamos enter.
Ahora
bien si necesitamos dos o mas colocamos los JobId separados por comas
y ejecutamos presionando el enter. Una vez que nos da el prompt vamos
asía el archivo con "cd" para entrar en los directorios y
una vez allí escribimos:
"mark
nombrearchvios" , " mark nombredirectorio " o "
mark * "
y
por ultimo
"done"
sale
y nos pregunta si queremos hacerlo le decimos "yes" y
ejecuta el restore en el servidor “cliente en el path
/var/local/bacula” (Para Linux y Windows) .
Cuando
termina chequeamos en el servidor cliente si esta todo bien, y
movemos el archivo a su respectivo directorio.
La
restauración se hace en otro directorio por seguridad para que no
borre ningún archivo.
::: Run:
Con
este comando ejecutamos un backup que nos hayan pedido fuera del
horario que habitualmente se hacen, o también cuando se traba alguno
importante podemos volver a realizarlo (Pero
no sera necesario ya que
el Bacula esta configurado para que reintente varias veces)
::: . (Punto):
Se
utiliza para salir del lugar que estemos sin ejecutar nada (Es como
un Cancelar)
::: Cancel :
Cancela
los jobs que estan en la cola de procesos, serian aquellos backups
que estan en espera de ejecución
::: Reload :
Comando
muy útil para cuando agregamos un cliente nuevo a backupear y no
podemos bajar el service bacula-director entonces por consola
ejecutamos ”reload” y lo que hace es releer los archivos de
configuración (*.conf) prune, purge y delete:
Comandos que borran los datos del
Catalogo (Base de Datos), por lo que se desprende que son utilizados
con mucha discreción
::: Prune :
Borra
los registros expirados del catálogo
---------------------------------------------------------
*prune
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
You have the following choices:
1: Files
2: Jobs
3: Volume
4: Stats
Choose ítem to prune (1-4): 3 (ej,
seleccionamos volume)
Defined Pools:
--> 1: Bacula-Director-5-Full
--> 2: Bacula-Director-5-Inc
--> 3: Bacula-Director-5-Diff
--> 4: Bacula-Director-5-Catalogo
--> 5: BH1-Normal-Full
--> 6: BH1-Normal-Inc
--> 7: BH1-Normal-Diff
Select the Pool (1-10): Cualquier
numero indicado por la flecha se debe seleccionar
::: Purge :
Purga
los registros del catálogo (Borra los registros en cascada)
-------------------------------------------------------------------------------------------------------------------------------------------------
*purge
This
command can be DANGEROUS!!! It purges (deletes) all Files from a Job,
JobId, Client or Volume; or it purges (deletes) all Jobs from a
Client or Volume without regard to retention periods. Normally you
should use the PRUNE command, which respects retention periods.
You
have the following choices:
1: files
2: jobs
3: volume
Choose
ítem to purge (1-3): 3
Defined
Pools:
1: Default
2: Bacula-Director-1
3: Scratch
4: Mesayuda-Full
5: Mesayuda-Inc
6: Mesayuda-Diff
7: Bacula-Director-1-Full
8: Bacula-Director-1-Diff
Select the Pool
(1-8):
::: Delete :
Eliminar
volúmenes, pools, o Jobs
----------------------------------------------------------------------------------------------------------------------------------------
*delete
In
general it is not a good idea to delete either a Pool or a Volume
since they may contain data.
You
have the following choices:
1: volume
2: pool
3: jobid
Choose
catalog ítem to delete (1-3):
---------------------------------------------------------------------------------------------------------------------------------------
::: Label:
Este
comando es usado para cambiar el nombre físico del volumen
---------------------------------------------------------
*label
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
Automatically selected Storage: Strg-Bacula-Storage
Enter new Volume name: BH1-Horario-Inc-0532
---------------------------------------------------------
:: Metodo para crear nuevos Label
Este
metodo lo empleamos cuando por algun motivo particular, en el momento
que bacula busca algun volumen vencido para reescribirlo y no lo
encuentra, los que nos lleva a que debamos generar manualmente un
nuevo Label para que se ejecute ese job trabado y permita seguir
haciendo los backups programados en el schedule.
[claudio@smarcnet ~]$ bconsole
Available Directors:
1: Bacula-Central-1-dir at 172.26.160.209:9101
2: Bacula-Director-2-dir at 172.26.160.60:9101
3: Bacula-Director-3-dir at 172.26.160.71:9101
4: Bacula-Director-4-dir at 172.26.160.202:9101
5: BDPGSQL-dir at 172.26.160.33:9101
6: Bacula-Teco-1-dir at 10.0.48.16:9101
7: bacula-teco-2-dir at 111.11.111.111:9101
8: bacula-teco-3-dir at 10.0.48.201:9101
9: Kurchatovio-dir at 10.0.48.212:9101
Select Director by entering a number: 9
Connecting to Director 10.0.48.212:9101
1000 OK: Kurchatovio-dir Version: 5.2.5 (26 January 2012)
Enter a period to cancel a command.
*mess
29-ene 11:18 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:23 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:28 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
29-ene 11:33 Kurchatovio-dir JobId 1915: Pruning oldest volume "Blade-Hoja13-Inc-0102"
*
*list Pool=Blade-Hoja13-Inc media
Automatically selected Catalog: MyCatalog
Using Catalog "MyCatalog"
+--------+------------------+---------+---------+----------+-------------------+
| PoolId | Name | NumVols | MaxVols | PoolType | LabelFormat |
+--------+------------------+---------+---------+----------+-------------------+
| 35 | Blade-Hoja13-Inc | 16 | 16 | Backup | Blade-Hoja13-Inc- |
+--------+------------------+---------+---------+----------+-------------------+
+---------+-----------------------+-----------+---------+-------------+----------+--------------+---------+------+-----------+-----------+
| MediaId | VolumeName | VolStatus | Enabled | VolBytes | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten |
+---------+-----------------------+-----------+---------+-------------+----------+--------------+---------+------+-----------+-----------+
| 582 | Blade-Hoja13-Inc-0582 | Used | 1 | 101,926,179 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-15 12:15:04 |
| 583 | Blade-Hoja13-Inc-0583 | Used | 1 | 138,136,375 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-15 12:29:44 |
| 597 | Blade-Hoja13-Inc-0597 | Used | 1 | 48,774,324 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-16 08:52:22 |
| 626 | Blade-Hoja13-Inc-0626 | Used | 1 | 55,392,521 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-18 12:04:28 |
| 678 | Blade-Hoja13-Inc-0678 | Used | 1 | 59,325,952 | 0 | 2,160,000 | 1 | 0 | 0 | File | 2013-01-27 17:55:50 |
+---------+-----------------------+-----------+---------+-------------+----------+--------------+---------+------+-----------+-----------+
*
*label
Automatically selected Storage: Strg-Kurchatovio
Enter new Volume name: Blade-Hoja13-Inc-0679
Defined Pools:
1: Bacula-Teco-Full
2: Bacula-Teco-Diff
3: Bacula-Teco-Inc
4: Bacula-Teco-Catalog-Full
5: Default
6: Foton-Full
7: Foton-Diff
8: Foton-Inc
.......
32: Blade-Hoja12-Inc
33: Blade-Hoja13-Full
34: Blade-Hoja13-Diff
35: Blade-Hoja13-Inc
Select the Pool (1-134): 35
Connecting to Storage daemon Strg-Kurchatovio at 10.0.48.212:9103 ...
Sending label command for Volume "Blade-Hoja13-Inc-0679" Slot 0 ...
3000 OK label. VolBytes=240 DVD=0 Volume="Blade-Hoja13-Inc-0679" Device="Storage-Kurchatovio" (/raid/Kurchatovio)
Catalog record for Volume "Blade-Hoja13-Inc-0679", Slot 0 successfully created.
Requesting to mount Storage-Kurchatovio ...
3001 OK mount requested. Device="Storage-Kurchatovio" (/raid/Kurchatovio)
*
:: Cancelando un Job en ejecución desde consola
Para cancelar Job en ejecucion, no podremos hacerlo solo del comando cancel, debemos indicar el jobid que tiene ese proceso.
Para saber el JobId, lo podremos ejecutar de la siguiente manera:
# status client
Seleccionamos el cliente desde la lista y de ahi sacamos el jobid que se esta ejecutando
Y luego tipeamos:
cancel jobid=XXXX
: Problemas Generales
:: Desfasaje de Horario
Como
suele defasarse el horario de los baculas servidores, ejecutamos el
comando detallado :
ntpdate ntp.senasa.gov.ar (Para los Baculas de casa central)
ntpdate dsdcenter.senasa.gov.ar (Para los Baculas de Telecom)
Ya que si el desfasa es importante retrasa considerablemente el incio del backup
ntpdate ntp.senasa.gov.ar (Para los Baculas de casa central)
ntpdate dsdcenter.senasa.gov.ar (Para los Baculas de Telecom)
Ya que si el desfasa es importante retrasa considerablemente el incio del backup
:: Problemas en los bacukps por defasaje de fecha en el vencimiento del volumen
Chequear diariamente los baculas con el Bat console, si encuentra algun job con la siguiente exprecion proceder como se describe en el mail anterior y que nuevamente detallo en este mail29-ene 11:08 Kurchatovio-dir JobId 1915: Pruning oldest volume "BH1-Horario-Full-0212"
29-ene 11:13 Kurchatovio-dir JobId 1915: Pruning oldest volume "BH1-Horario-Full-0212"
bconsole list Pool=BH1-Horario-Full media esto le va a mostrar el ultimo full de BH1-Horario osea van a ver
BH1-Horario-Full-0212 entonces una vez obtenido el ultimo numero hacen
label
En este caso deben seleccionar el storage Horario y luego colocar el nombre del nuevo volumen que seria
BH1-Horario-Full-0213
:: Problemas con Jobs (Exceptuando problemas de vencimiento del volumen)
Si
los backups se traban, al ejecutar el comando storage status, nos
muestra el siguiente textos:
bconsole *status storage
The defined Storage resources are:
1: Strg-kurchatovio
2: Strg-kurchatovio-Horario
Select Storage resource (1-2): 1
Connecting to Storage daemon Strg-kurchatovio at 10.0.48.16:9103
Bacula-Teco-1-sd Version: 5.2.5 (26 January 2012) x86_64-pc-linux-gnu ubuntu 12.04
Daemon started 22-Jan-13 11:32. Jobs: run=309, running=0.
Heap: heap=270,336 smbytes=235,214 max_bytes=366,889 bufs=115 max_bufs=127
Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0
Running Jobs:
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Jobs waiting to reserve a drive:
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
===================================================================
12810 Incr 5 67.10 M OK 28-Jan-13 13:23 Job-BH1-Horario
12812 Incr 48 771.7 M OK 29-Jan-13 09:39 Job-BH1-Horario
12814 Incr 47 754.9 M OK 29-Jan-13 09:53 Job-BH1-Horario
12811 Incr 68 168.0 M OK 29-Jan-13 09:55 Job-PGSQL-Horario
12813 Incr 68 168.0 M OK 29-Jan-13 09:57 Job-PGSQL-Horario
12834 Incr 69 376.9 K OK 29-Jan-13 09:57 Backup-Bacula-Teco
12835 Full 1 14.39 M OK 29-Jan-13 09:58 Backup-Bacula-Teco-Catalog
12856 Incr 3 33.55 M OK 29-Jan-13 10:15 Job-BH1-Horario
12857 Incr 2 2.178 M OK 29-Jan-13 10:25 Job-PGSQL-Horario
12858 Incr 3 33.55 M OK 29-Jan-13 11:15 Job-BH1-Horario
====
Device status:
Device "Strgkub" (/raid) is not open.
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Used Volume status:
====
====
You have messages.
*
bconsole *status storage
The defined Storage resources are:
1: Strg-kurchatovio
2: Strg-kurchatovio-Horario
Select Storage resource (1-2): 1
Connecting to Storage daemon Strg-kurchatovio at 10.0.48.16:9103
Bacula-Teco-1-sd Version: 5.2.5 (26 January 2012) x86_64-pc-linux-gnu ubuntu 12.04
Daemon started 22-Jan-13 11:32. Jobs: run=309, running=0.
Heap: heap=270,336 smbytes=235,214 max_bytes=366,889 bufs=115 max_bufs=127
Sizes: boffset_t=8 size_t=8 int32_t=4 int64_t=8 mode=0,0
Running Jobs:
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Jobs waiting to reserve a drive:
====
Terminated Jobs:
JobId Level Files Bytes Status Finished Name
===================================================================
12810 Incr 5 67.10 M OK 28-Jan-13 13:23 Job-BH1-Horario
12812 Incr 48 771.7 M OK 29-Jan-13 09:39 Job-BH1-Horario
12814 Incr 47 754.9 M OK 29-Jan-13 09:53 Job-BH1-Horario
12811 Incr 68 168.0 M OK 29-Jan-13 09:55 Job-PGSQL-Horario
12813 Incr 68 168.0 M OK 29-Jan-13 09:57 Job-PGSQL-Horario
12834 Incr 69 376.9 K OK 29-Jan-13 09:57 Backup-Bacula-Teco
12835 Full 1 14.39 M OK 29-Jan-13 09:58 Backup-Bacula-Teco-Catalog
12856 Incr 3 33.55 M OK 29-Jan-13 10:15 Job-BH1-Horario
12857 Incr 2 2.178 M OK 29-Jan-13 10:25 Job-PGSQL-Horario
12858 Incr 3 33.55 M OK 29-Jan-13 11:15 Job-BH1-Horario
====
Device status:
Device "Strgkub" (/raid) is not open.
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Used Volume status:
====
====
You have messages.
*
En el texto detallado lo que nos interesa son dos items: Running Jobs: (Al principio del texto)
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Device "Strgkub" (/raid) is not open. (Al final del texto)
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Este caso se soluciona creando un nuevo label. Pero si tenemos este otro caso: Running Jobs: (Al principio del texto)
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12859 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Writing: Incremental Backup job Job-PGSQL-Horario JobId=12860 Volume=""
pool="PGSQL-Horario-Inc" device="Strgkub-Horario" (/raid/Horario)
spooling=0 despooling=0 despool_wait=0
Files=0 Bytes=0 Bytes/sec=0
FDReadSeqNo=6 in_msg=6 out_msg=4 fd=5
====
Device "Strgkub" (/raid) is not open. (Al final del texto)
Device "Strgkub-Horario" (/raid/Horario) is not open.
Device is BLOCKED waiting to create a volume for:
Pool: PGSQL-Horario-Inc
Media type: File
====
Esto se soluciona con el siguiente comando : service bacula-sd force-reload
si esto no lo soluciona, solo en casos extremos reiniciar el servicio de bacula de la siguiente forma 1° Bajar el bacula-fd: service bacula-fd stop
2° Bajar el bacula-sd: service bacula-sd stop
3° Bajar el bacula-director: service bacula-director stop
Y luego ejecutar con la misma secuencia el inicio 1° Subir el bacula-fd: service bacula-fd start
2° Subir el bacula-sd: service bacula-sd start
3° Subir el bacula-director: service bacula-director start
:: Problemas en la creación de un nuevo label:
::: Caso 1
*label
Automatically selected Storage: Strg-Kurchatovio
Enter new Volume name: Blade-Hoja13-Inc-0679
Media record for new Volume "Blade-Hoja13-Inc-0679" already exists.
Automatically selected Storage: Strg-Kurchatovio
Enter new Volume name: Blade-Hoja13-Inc-0679
Media record for new Volume "Blade-Hoja13-Inc-0679" already exists.
::: Caso 2
Volume name must be at
least one character long.
Enter new Volume name: Blade-Hoja13-Inc-0680
Defined Pools:
1: Bacula-Teco-Full
2: Bacula-Teco-Diff
3: Bacula-Teco-Inc
4: Bacula-Teco-Catalog-Full
5: Default
6: Foton-Full
7: Foton-Diff
8: Foton-Inc
......
Enter new Volume name: Blade-Hoja13-Inc-0680
Defined Pools:
1: Bacula-Teco-Full
2: Bacula-Teco-Diff
3: Bacula-Teco-Inc
4: Bacula-Teco-Catalog-Full
5: Default
6: Foton-Full
7: Foton-Diff
8: Foton-Inc
......
33:
Blade-Hoja13-Full
34: Blade-Hoja13-Diff
35: Blade-Hoja13-Inc
Select the Pool (1-134): 35
Connecting to Storage daemon Strg-Kurchatovio at 10.0.48.212:9103 ...
Sending label command for Volume "Blade-Hoja13-Inc-0680" Slot 0 ...
3937 Device ""Storage-Kurchatovio" (/raid/Kurchatovio)" is busy with writers=1 reserved=0.
Label command failed for Volume Blade-Hoja13-Inc-0680.
Do not forget to mount the drive!!!
*
34: Blade-Hoja13-Diff
35: Blade-Hoja13-Inc
Select the Pool (1-134): 35
Connecting to Storage daemon Strg-Kurchatovio at 10.0.48.212:9103 ...
Sending label command for Volume "Blade-Hoja13-Inc-0680" Slot 0 ...
3937 Device ""Storage-Kurchatovio" (/raid/Kurchatovio)" is busy with writers=1 reserved=0.
Label command failed for Volume Blade-Hoja13-Inc-0680.
Do not forget to mount the drive!!!
*
:: Fatal error: Can't fill Pathtable Query failed
Antes
de implementar alguna solucion para el correcto funcionamiento
hacemos un dump de la base como backup de la siguiente forma:
mysqldump
--opt -u root -p bacula > bacula.sql password: (colocar el
password, dejar hasta que devuelva el prompt)
Error
que se genero:
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "FSRM
Writer",
State: 0x1 (VSS_WS_STABLE)
18-may
12:21 raidebian-sd JobId 4359: Job write elapsed time = 00:34:58,
Transfer
rate = 2.925 M bytes/second
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):
"System
Writer", State: 0x1 (VSS_WS_STABLE)
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):
"IISMetabase Writer", State: 0x1 (VSS_WS_STABLE)
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):
"FRSWriter", State: 0x1 (VSS_WS_STABLE)
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):
"DFSReplication service writer", State: 0x1 (VSS_WS_STABLE)
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):
"BITSWriter", State: 0x1 (VSS_WS_STABLE)
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):
"WMIWriter", State: 0x1 (VSS_WS_STABLE)
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "EventLog
Writer", State: 0x1 (VSS_WS_STABLE)
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer
(BackupComplete):"MSDEWriter", State: 0x1 (VSS_WS_STABLE)
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete):"Registry
Writer", State: 0x1 (VSS_WS_STABLE)
18-may
12:23 sdcfile1-fd JobId 4359: VSS Writer (BackupComplete): "COM+REGDB
Writer", State: 0x1 (VSS_WS_STABLE)
18-may
12:21 raidebian-dir JobId 4359: Fatal error: Can't fill Pathtable
Query failed: INSERT INTO Path (Path) SELECT a.Path FROM
(SELECTDISTINCT Path FROM batch) AS a WHERE NOT EXISTS (SELECT Path
FROM PathAS p WHERE p.Path = a.Path): ERR=Incorrect key file for
table'/tmp/#sql_7c03_1.MYI'; try to repair it
18-may
12:21 raidebian-dir JobId 4359: Error: Bacula raidebian-dir 2.2.8
(26Jan08):
18-may-2009 12:21:51
Build
OS: i486-pc-linux-gnu debian lenny/sid
JobId:
4359Job: Backup-sdcfile1.2009-05-18_11.46.42
Backup
Level: Incremental, since=2009-05-06 23:00:03
Client:
"sdcfile1-fd" 2.4.3 (10Oct08) Linux,Cross-compile,Win32
FileSet:
"sdcfile1FileSet" 2008-11-26 23:00:00
Pool:
"sdcfile1-Inc-Pool" (From User input)
Storage:
"raidebian-sd" (From Job resource)
Scheduled
time: 18-may-2009 11:46:35
Start
time: 18-may-2009 11:46:53
End
time: 18-may-2009 12:21:51
Elapsed
time: 34 mins 58 secs
Priority:
5FD Files Written: 5,068SD Files Written: 5,068
FD
Bytes Written: 6,136,839,297 (6.136 GB)
SD
Bytes Written: 6,137,878,056 (6.137 GB)
Rate:
2925.1 KB/sSoftware Compression: 24.2 %
VSS:
yesStorage Encryption: noVolume name(s): sdcfile1-Inc-0205
Volume
Session Id: 38Volume Session Time: 1242412747
Last
Volume Bytes: 16,016,990,585 (16.01 GB)
Non-fatal
FD errors: 0
SD
Errors: 0
FD
termination status: O
KSD
termination status: O
KTermination:
*** Backup Error ***
18-may
12:21 raidebian-dir JobId 4359: Begin pruning Jobs.
18-may
12:21 raidebian-dir JobId 4359: No Jobs found to prune.
18-may
12:21 raidebian-dir JobId 4359: Begin pruning Files.
18-may
12:21 raidebian-dir JobId 4359: No Files found to prune.
18-may
12:21 raidebian-dir JobId 4359: End auto prune.
Este
error se genero por falta de espacio principalmente, pero ademas el
archivo de configuracion del Mysql, osea, my.cnf (/etc/mysql/) tenia
la variable tmpdir apuntando al directorio /tmp el cual tiene poco
espacio y el archivo temporario #sql_7c03_1.MYI', que genera, crecio
en forma desproporcionada, lo que se hizo es cambiar a /var/tmp.
Si
en otra ocasion no funciona, debemos borrar el indice que corresponde
en este caso a la tabla Path de esta forma:
alter
table Path drop index Path;
Luego
volvemos a crearlo tal cual esta escrito:
alter
table Path add index Path (`Path`(255));
Para
poder ver que Keys tiene debemos hacer lo siguiente:
show
create tables Path;
Hecho
esto reiniciamos el mysql server y en teoria deberia andar.
:: Repara error en Tabla Log
Query
failed: .sql query="SELECT Time, LogText FROM Log WHERE
JobId='3510' order by Time". ERR=Query failed: SELECT Time,
LogText FROM Log WHERE JobId='3510' order by Time: ERR=Table
'./bacula/Log' is marked as crashed and should be repaired
[root@Bacula-Director-3
/]# mysqlcheck -h baculadirector3.tudominio.com.ar -u usuariomysql -p
-o bacula
bacula.BaseFiles
OK
bacula.CDImages
OK
bacula.Client
OK
bacula.Counters
OK
bacula.Device
OK
bacula.File
OK
bacula.FileSet
OK
bacula.Filename
OK
bacula.Job
OK
bacula.JobHisto
OK
bacula.JobMedia
OK
bacula.Location
OK
bacula.LocationLog
OK
bacula.Log
Error
: Table './bacula/Log' is marked as crashed and should be repaired
Error
: Table 'Log' is marked as crashed and should be repaired
error
: Corrupt
bacula.Media
OK
bacula.MediaType
OK
bacula.Path
OK
bacula.PathHierarchy
OK
bacula.PathVisibility
OK
bacula.Pool
OK
bacula.Status
OK
bacula.Storage
OK
bacula.UnsavedFiles
OK
bacula.Version
OK
mysql>
repair table Log;
+------------+--------+----------+------------------------------------------------------+
|
Table | Op | Msg_type | Msg_text
|
+------------+--------+----------+------------------------------------------------------+
|
bacula.Log | repair | info | Found block that points outside data
file at 1019032 |
|
bacula.Log | repair | status | OK
|
+------------+--------+----------+------------------------------------------------------+
2
rows in set (0.27 sec)
There
were no results!
It
is possible you may need to add "catalog = all" to the
Messages resource for this job.
Cancele el Job y reinicie el bacula-director, bacula-sd y el mysql , el error desaparecio, muestra directamente el log del Job cancelado . Desde consola restarteo el Job Cancelado
run
job="Job-Gth" client="Gth-fd" level=Incremental
fileset="Gth-FileSet"
:: Error de Permisos denied
28-Feb
14:50 Kurchatovio-dir: Warning: Cannot bind port 9101: ERR=Cannot
assign requested address: Retrying ...
28-Feb
14:52 Kurchatovio-dir: Warning: Cannot bind port 9101: ERR=Cannot
assign requested address: Retrying ...
28-Feb
14:54 Kurchatovio-dir: ERROR in parse_conf.c:918 Config error: Cannot
open config file "/etc/bacula/bacula-dir.conf": Permission
denied
Este
error en particular se produce cuando el director en el archivo
bacula-dir.conf tiene el DirAddres mal o la password mal.
Para
solucionarlo chequeamos que el IP del servidor sea el mismo IP que
tiene el Director, o que el Filedaemon (FD) tenga el password
correcto del director.
:: Proceso de Job Trabado
Cuando
en Bat console vemos que el job que esta corriendo presenta este
aspecto:
BDPGSQL-dir
Start Backup JobId 2289,
Job=Job-Senasa-Archivos2.2013-04-15_23.00.00_09
Lo
que usualmente hago es reiniciar el daemon del storage para que
reactive, si bien este proceso se pierde, lo demas que estan en cola
continuan y obtendremos del proceso trabado generalmente el siguiente
log:
BDPGSQL-dir
Start Backup JobId 2289,
Job=Job-Senasa-Archivos2.2013-04-15_23.00.00_09BDPGSQL-dir
Job Job-Senasa-Archivos2.2013-04-15_23.00.00_09 waiting 3600 seconds
for scheduled start time.
Rescheduled
Job Job-Senasa-Archivos2.2013-04-15_23.00.00_09 at 16-abr-2013 11:43
to re-run in 3600 seconds (16-abr-2013 12:43).
Error:
Bacula BDPGSQL-dir 5.0.2 (28Apr10): 16-abr-2013 11:43:57
Build
OS: x86_64-pc-linux-gnu debian 6.0.6
JobId:
2289
Job:
Job-Senasa-Archivos2.2013-04-15_23.00.00_09
Backup
Level: Incremental, since=2013-04-07 14:29:45
Client:
"Archivos2-fd" 5.2.5 (26Jan12) Microsoft
Windows Server 2008 Standard Edition Service Pack 1 (build 6001),
32-bit,Cross-compile,Win32
FileSet:
"FileSet-Archivos2-Senasa" 2012-10-15
01:30:00
Pool:
"Archivos2-Senasa-Inc" (From Run pool
override)
Catalog:
"MyCatalog" (From Client resource)
Storage:
"Strg-FreeNas-BDPGSQL" (From run override)
Scheduled
time: 15-abr-2013 23:00:00
Start
time: 15-abr-2013 23:00:02
End
time: 16-abr-2013 11:43:57
Elapsed
time: 12 hours 43 mins 55 secs
Priority:
10
FD
Files Written: 0
SD
Files Written: 0
FD
Bytes Written: 0 (0 B)
SD
Bytes Written: 0 (0 B)
Rate:
0.0 KB/s
Software
Compression: None
VSS:
no
Encryption:
no
Accurate:
no
Volume
name(s):
Volume
Session Id: 91
Volume
Session Time: 1363197140
Last
Volume Bytes: 0 (0 B)
Non-fatal
FD errors: 0
SD
Errors: 0
FD
termination status:
SD
termination status:
Termination:
*** Backup Error ***
Fatal error:
Storage daemon didn't accept Device "Storage-FreeNas-BDPGSQL" command.
Fatal error:
Storage daemon didn't accept Device "Storage-FreeNas-BDPGSQL" command.
:: Comprobar Database de Bacula.
Dbcheck
es un sencillo programa que buscará las inconsistencias lógicas en
las tablas de Bacula en su base de datos y, opcionalmente,
arreglarlos. Es una rutina de mantenimiento de base de datos, en el
sentido de que puede detectar y eliminar filas no utilizadas, pero no
es una rutina de reparación de base de datos.
Uso:
dbcheck [-c config] [-C catalog name] [-d debug_level]
-b
batch mode
-C
catalog name in the director conf file
-c
director conf filename
-B
print catalog configuration and exit
-dnn
set debug level to nn
-dt
print timestamp in debug output
-f
fix inconsistencies
-v
verbose
-?
print this message
Ejemplo
root@bacula-dir:~#
dbcheck /etc/bacula/bacula-dir.conf bacula bacula password
[-c
config] = /etc/bacula/bacula-dir.conf
[-C
catalog name] = bacula
En
el menu 1 se utiliza para la comprobacion del estado general de la
base, esta se lleva acabo con la seleccion de la opcion 16
Menu
1
1)
Activar bandera modificar base de datos
2)
Activar bandera detallado
3)
Verificar malos registros de Nombre de Archivo
4)
Verificar malos registros de Rutas
5)
Verificar registros de Nombre de Archivo duplicados
6)
Verificar registros de Rutas duplicados
7)
Verificar registros de Jobmedia huérfanos
8)
Verificar registros de Archivo huérfanos
9)
Verificar registros de Rutas huérfanos
10)
Verificar registros de nombre de archivo huérfanos
11)
Verificar registros de FileSet huérfanos
12)
Verificar registros de Cliente huérfanos
13)
Verificar registros de Job huérfanos
14)
Verificar todos los registros de Administración
15)
Verificar todos los registros de Restauración
16)
Todos (3-15)
17)
Salir
El
menu 2 se activa una vez que hallamos verificado la base, y
presionaremos la opcion 1 y luego la opcion 16 que ejecuta los items
del 3-15
Menu
2
1)
Activar bandera modificar base de datos
2)
Activar bandera detallado
3)
Reparar malos registros de Nombre de Archivo
4)
Reparar malos registros de Rutas
5)
Eliminar registros de Nombre de Archivo duplicados
6)
Eliminar registros de Rutas duplicados
7)
Eliminar registros de Jobmedia huérfanos
8)
Eliminar registros de Archivo huérfanos
9)
Eliminar registros de Rutas huérfanos
10)
Eliminar registros de nombre de archivo huérfanos
11)
Eliminar registros de FileSet huérfanos
12)
Eliminar registros de Cliente huérfanos
13)
Eliminar registros de Job huérfanos
14)
Eliminar todos los registros de Administración
15)
Eliminar todos los registros de Restauración
16)
Todos (3-15)
17)
Salir
:: Fatal error: Device reservation failed
Este
error se produce cuando tenemos en el bacula-sd.conf un nombre de
Device distinto al declarado en bacula-dir.conf
Bacula-Director-2-dir
Start Backup JobId 6428, Job=Job-Nagios.2013-04-25_23.50.00_24
Bacula-Director-2-sd
Fatal error: Device reservation failed for JobId=6428:
Bacula-Director-2-dir
Fatal error:
Storage
daemon didn't accept Device "Storage-FreeNas-1-BD2"
because:
3924
Device "Storage-FreeNas-1-BD2" not in SD Device resources.
Error:
Bacula Bacula-Director-2-dir 5.0.2 (28Apr10): 25-abr-2013 23:50:02
Build
OS: x86_64-pc-linux-gnu debian 6.0.6
JobId:
6428
Job:
Job-Nagios.2013-04-25_23.50.00_24
Backup
Level: Incremental, since=2013-04-23 00:42:40
Client:
"Nagios-fd" 5.0.1 (24Feb10)
i486-pc-linux-gnu,ubuntu,10.04
FileSet:
"FileSet-Nagios" 2012-11-07 23:50:00
Pool:
"Nagios-Inc" (From Run pool override)
Catalog:
"MyCatalog" (From Client resource)
Storage:
"Strg-FreeNas-BD2" (From run override)
Scheduled
time: 25-abr-2013 23:50:00
Start
time: 25-abr-2013 23:50:02
End
time: 25-abr-2013 23:50:02
Elapsed
time: 0 secs
Priority:
50
FD
Files Written: 0
SD
Files Written: 0
FD
Bytes Written: 0 (0 B)
SD
Bytes Written: 0 (0 B)
Rate:
0.0 KB/s
Software
Compression: None
VSS:
no
Encryption:
no
Accurate:
no
Volume
name(s):
Volume
Session Id: 29
Volume
Session Time: 1366832921
Last
Volume Bytes: 0 (0 B)
Non-fatal
FD errors: 0
SD
Errors: 0
FD
termination status:
SD
termination status:
Termination:
*** Backup Error ***
: Ejemplos de Configuracion
:: Bacula Director por Source (bacula-dir.conf)
Director
{
Name
= Bacula-Director-1-dir
DIRport
= 9101
QueryFile
= "/home/bacula/bacula/bin/query.sql"
WorkingDirectory
= "/home/bacula/bacula/bin/working"
PidDirectory
= "/home/bacula/bacula/bin/working"
Maximum
Concurrent Jobs = 20
Password
= "D1r3ct0r1" # Console password
Messages
= Daemon
DirAddress
= 111.11.111.111
}
#------------------------
Definition of file storage device
-----------------------------------------
Storage
{
Name
= Strg-Raidubuntu
Address
= 111.11.111.111 # N.B. Use a fully qualified name here
SDPort
= 9103
Password
= "strgD1r3ct0r1"
Device
= "Storage-Raidubuntu"
Media
Type = File
}
#------------------------
Generic catalog service -----------------------------------------
Catalog
{
Name
= MyCatalog
dbname
= "bacula"; dbuser = "bacula"; dbpassword = ""
}
#-----------------------------------------
Reasonable message delivery -----------------------------------------
Messages
{
Name
= Standard
mailcommand
= "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\
(Bacula-Director-1\)
\&lt;%r\&gt;\" -s \"Bacula: %t %e of %c
%l\" %r"
operatorcommand
= "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f \"\
(Bacula-Director-1\)
\&lt;%r\&gt;\" -s \"Bacula: Necesita
intervención %j\" %r"
mail
= su-usuario@.sudominio.com.ar = all, !skipped
operator
= su-usuario@.sudominio.com.ar = mount
console
= all, !skipped, !saved
append
= "/home/bacula/bacula/bin/working/log" = all, !skipped
catalog
= all
}
Messages
{
Name
= Daemon
mailcommand
= "/home/bacula/bacula/bin/bsmtp -h mail.sudominio.com.ar -f
\"\(Bacula-Director-1\) \&lt;%r\&gt;\" -s
\"Bacula-Director-1 daemon message\" %r"
mail
= su-usuario@sudominio.com.ar = all, !skipped
console
= all, !skipped, !saved
append
= "/home/bacula/bacula/bin/working/log" = all, !skipped
}
#------------------
Console used by tray-monitor ------------------------------------
Console
{
Name
= Bacula-Director-mon
Password
= "D1r3ct0r1m0n"
CommandACL
= status, .status
}
#---------------------------
CLIENT REMOTE CASA CENTRAL ------------------
@/home/bacula/bacula/client/Myself.conf
@/home/bacula/bacula/client/server1.conf
@/home/bacula/bacula/client/server2.conf
:: Bacula Director por Repositorio (bacula-dir.conf)
Director {
Name = Bacula-Director-2-dir
DIRport = 9101
QueryFile =
"/etc/bacula/scripts/query.sql"
WorkingDirectory =
"/var/lib/bacula"
PidDirectory = "/var/run/bacula"
Maximum Concurrent Jobs = 4
Password = "D1r3ct0r2"
Heartbeat Interval = 1
Messages = Daemon
DirAddress
= 111.11.111.111
}
#------------------------------
STORAGE -------------------------------------
Storage {
Name = Strg-FreeNas-BD2
Address
= 111.11.111.111
SDPort = 9103
Password = "strgSt0r4g3"
Device = Storage-FreeNas-BD2
Maximum Concurrent Jobs = 20
Media Type = File
}
#---------------------------
CATALOG ----------------------------------------
Catalog {
Name = MyCatalog
dbname
= bacula; DB Address = ""; dbuser = "bacula";
dbpassword = "sql2011"
}
#---------------------------
MESSAGES ---------------------------------------
Messages {
Name = Standard
mailcommand =
"/usr/lib/bacula/bsmtp -h mail.sudominio.com.ar -f
\"\(Bacula-Director-2\) \<%r\>\" -s \"Bacula: %t
%e of %c %l\" %r"
operatorcommand =
"/usr/lib/bacula/bsmtp -h mail.sudominio.com.ar -f
\"\(Bacula-Director-2\) \<%r\>\" -s \"Bacula:
Necesita intervención %j\" %r"
mail = bacula@sudominio.com.ar =
all, !skipped
operator = csottile@senasa.gov.ar
= mount
console = all, !skipped, !saved
append = "/var/lib/bacula/log"
= all, !skipped
catalog = all
}
Messages {
Name = Daemon
mailcommand =
"/usr/lib/bacula/bsmtp -h mail.sudominio.com.ar -f
\"\(Bacula-Director-2\) \<%r\>\" -s
\"Bacula-Director-2 daemon message\" %r"
mail = bacula@sudominio.com.ar
= all, !skipped
console = all, !skipped, !saved
append = "/var/lib/bacula/log"
= all, !skipped
}
#----------------------------
CONSOLE ---------------------------------------
Console {
Name = Bacula-Director-2-mon
Password = "D1r3ct0r2m0n"
CommandACL = status, .status
}
#---------------------------
CLIENT REMOTE CASA CENTRAL ------------------
@|"sh -c 'cat
/etc/bacula/client/*.conf'"
:: Clientes Bacula-Director - Redhat/CentOS
Client
{
Name = Server-fd
Address = server.senasa.gov.ar
FDPort = 9102
Catalog = MyCatalog
Password = "Cl13ntPPP" # El passwd lleva
Cl13nt+Nombre de Server con letras y Numeros
File Retention = 30 days
Job Retention = 1 months
AutoPrune = yes
}
#-----------------
FileSet --------------------------------
FileSet
{
Name = "Server-FileSet"
Include {
Options {
signature = MD5
compression=GZIP
}
File
= ""
}
}
#-----------------
Schedule --------------------------------
Schedule
{
Name
= "Server-Schedule"
Run
= Level = Full Pool = Server-Full storage = Strg-Server sat at
HH:MM
Run
= Level = Differential Pool = Server-Diff storage = Strg-Server wed
at HH:MM
Run
= Level = Incremental Pool = Server-Inc storage = Strg-Server mon tue
thu fri at HH:MM
}
#----------------------------
JOBDEFS -----------------------------------
JobDefs
{
Name = "Server-JobDFS"
Type = Backup
Storage = Strg-Server # No cambiarlo porque indica a que Storage
apunta
Messages = Standard
Reschedule on error = yes
Reschedule interval = 1 hour
Reschedule times = 1
Priority = nn
}
#---------------------------
JOBS - BACKUPS ---------------------------------------
Job
{
Name = "Backup-Server"
JobDefs = "Server-JobDFS"
Client = Server-fd
FileSet = "Server-FileSet"
Schedule = "Server-Schedule"
Write Bootstrap = "/home/bacula/bacula/bin/working/Server.bsr"
Pool = Server-Inc
}
#------------------------------
POOL -------------------------------------
Pool
{
Name = Server-Full # File Pool
definition
Label Format = Server-Full-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = DD days # one year
Maximum Volumes = XX
Maximum Volume Jobs = 1 # Limit number of
Volumes in Pool
Recycle Oldest Volume = yes
}
Pool
{
Name = Server-Diff # File Pool
definition
Label Format = Server-Diff-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = DD days # one year
Maximum Volumes = XX # Limit number
of Volumes in Pool
Maximum Volume Jobs = 1
Recycle Oldest Volume = yes
}
Pool
{
Name = Server-Inc # File Pool
definition
Label Format = Server-Inc-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = DD days # one year
Maximum Volumes = 12
Maximum Volume Jobs = 1 # Limit number of
Volumes in Pool
Recycle Oldest Volume = yes
}
-------------------------------------------------------------------------------------------
:: Clientes Bacula-Director - Debian/Ubuntu
Client
{
Name = Server-fd
Address = server.senasa.gov.ar
FDPort = 9102
Catalog = MyCatalog
Password = "Cl13ntPPP" # El passwd lleva
Cl13nt+Nombre de Server con letras y Numeros
File Retention = 30 days
Job Retention = 1 months
AutoPrune = yes
}
#-----------------
FileSet --------------------------------
FileSet
{
Name = "Server-FileSet"
Include {
Options {
signature = MD5
compression=GZIP
}
File
= ""
}
}
#-----------------
Schedule --------------------------------
Schedule
{
Name
= "Server-Schedule"
Run
= Level = Full Pool = Server-Full storage = Strg-Server sat at
HH:MM
Run
= Level = Differential Pool = Server-Diff storage = Strg-Server wed
at HH:MM
Run
= Level = Incremental Pool = Server-Inc storage = Strg-Server mon tue
thu fri at HH:MM
}
#----------------------------
JOBDEFS -----------------------------------
JobDefs
{
Name = "Server-JobDFS"
Type = Backup
Storage = Strg-Server # No cambiarlo porque indica a que Storage
apunta
Messages = Standard
Reschedule on error = yes
Reschedule interval = 1 hour
Reschedule times = 1
Priority = nn
}
#---------------------------
JOBS - BACKUPS ---------------------------------------
Job
{
Name = "Backup-Server"
JobDefs = "Server-JobDFS"
Client = Server-fd
FileSet = "Server-FileSet"
Schedule = "Server-Schedule"
Write Bootstrap = "/var/lib/bacula/Server.bsr"
Pool = Server-Inc
}
#------------------------------
POOL -------------------------------------
Pool
{
Name = Server-Full # File Pool
definition
Label Format = Server-Full-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = DD days # one year
Maximum Volumes = XX
Maximum Volume Jobs = 1 # Limit number of
Volumes in Pool
Recycle Oldest Volume = yes
}
Pool
{
Name = Server-Diff # File Pool
definition
Label Format = Server-Diff-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = DD days # one year
Maximum Volumes = XX # Limit number
of Volumes in Pool
Maximum Volume Jobs = 1
Recycle Oldest Volume = yes
}
Pool
{
Name = Server-Inc # File Pool
definition
Label Format = Server-Inc-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = DD days # one year
Maximum Volumes = 12
Maximum Volume Jobs = 1 # Limit number of
Volumes in Pool
Recycle Oldest Volume = yes
}
----------------------------------------------------------------------------------------
:: Clientes Bacula-Director (General): Myself.conf
Client
{
Name = Server-fd
Address = server.senasa.gov.ar
FDPort = 9102
Catalog = MyCatalog
Password = "Cl13ntPPP" # El passwd lleva
Cl13nt+Nombre de Server con letras y Numeros
File Retention = 30 days
Job Retention = 1 months
AutoPrune = yes
}
#---------------------------
FILESET ------------------------------------
FileSet
{
Name = "Bacula-Director-nn-FileSet"
Include {
Options {
signature = MD5
}
File = /etc
File = /home
File = /var
File = /usr
File = /var/lib/bacula/
}
Exclude {
File = /proc
File = /tmp
File = /.journal
File = /.fsck
}
}
FileSet
{
Name = "Catalog"
Include {
Options {
signature = MD5
}
File = "/var/lib/bacula/bacula.sql"
}
}
#---------------------------
SCHEDULE -----------------------------------
Schedule
{
Name
= "Bacula-Director-nn-Schedule"
Run
= Level = Full Pool = Bacula-Director-nn-Full storage = Strg-SSS sat
at HH:MM
Run
= Level = Differential Pool = Bacula-Director-nn-Diff storage =
Strg-SSS wed at HH:MM
Run
= Level = Incremental Pool = Bacula-Director-nn-Inc storage =
Strg-SSS mon tue thu fri at HH:MM
}
Schedule
{
Name
= "WeeklyCycleAfterBackup"
Run
= Level = Full Pool = Bacula-Director-nn-Catalog storage = Strg-SSS
mon-sat at 23:20
}
#----------------------------
JOBDEFS -----------------------------------
JobDefs
{
Name = "Server-JobDFS"
Type = Backup
Storage = Strg-SSS
Messages = Standard
Reschedule on error = yes
Reschedule interval = 1 hour
Reschedule times = 1
Priority = nn
}
JobDefs
{
Name = "Bacula-Director-nn-Catalogo-JobDFS"
Type = Backup
Server = Bacula-Director-1-fd
FileSet = "Catalog"
Schedule = "WeeklyCycleAfterBackup"
Storage = Strg-SSS
Messages = Standard
Priority = nn # run after main backup
}
#---------------------------
JOBS - BACKUPS ---------------------------------------
Job
{
Name = "Backup-Server"
JobDefs = "Server-JobDFS"
Client = Server-fd
FileSet = "Bacula-Director-nn-FileSet"
Schedule = "Bacula-Director-nn-Schedule"
Write Bootstrap =
"/home/bacula/bacula/bin/working/Backup-Server.bsr"
Pool = Server-Inc
}
#---------------------------
JOBS - RESTORE ---------------------------------------
Job
{
Name = "Restore-Files"
Type = Restore
Client = Server-fd
FileSet = "Bacula-Director-nn-FileSet"
Storage = Strg-SSS
Pool = Default
Messages = Standard
Where = /var/local/bacula
Priority = 1
}
#------------------------------
POOL -------------------------------------
Pool
{
Name = Server-Full # File Pool definition
Label Format = Server-Full-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = 30 days # one year
Maximum Volumes = 2 # Limit number of
Volumes in Pool
Maximum Volume Jobs = 1
Recycle Oldest Volume = yes
}
Pool
{
Name = Server-Inc # File Pool definition
Label Format = Server-Inc-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = 30 days # one year
Maximum Volumes = 8 # Limit number of
Volumes in Pool
Maximum Volume Jobs = 1
Recycle Oldest Volume = yes
}
Pool
{
Name = Server-Diff # File Pool definition
Label Format = Server-Diff-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = 30 days # one year
Maximum Volumes = 2 # Limit number of
Volumes in Pool
Maximum Volume Jobs = 1
Recycle Oldest Volume = yes
}
Pool
{
Name = Server-Catalogo # File Pool definition
Label Format = Server-Catalogo-
Pool Type = Backup
Recycle = yes # Bacula can
automatically recycle Volumes
AutoPrune = yes # Prune expired
volumes
Volume Retention = 30 days # one year
Maximum Volumes = 5 # Limit number of
Volumes in Pool
Maximum Volume Jobs = 1
Recycle Oldest Volume = yes
}
Pool
{
Name = Default # Default pool definition
Pool Type = Backup
Recycle = yes # Bacula can automatically
recycle Volumes
AutoPrune = yes # Prune expired volumes
Volume Retention = 30 days # one months
}
HOLA ESTAS?
ResponderEliminar