Sunteți pe pagina 1din 16

Comandos utiles de la consola de bacula (bconsole) y ejemplos de

ejecución manual de jobs de respaldo y restauracion

Por: Jose Herrera


Correo electronico: herrerajs@yahoo.com
jherrera@solucionesit.com.ve
Pagina web: www.solucionesit.com.ve
Administración

Para la administración de los servicios de bacula, se utilizan diferentes consolas, bien sea de
comandos, grafica o web. Una de las mas utilizadas, es la consola de textos bconsole. Para
ejecutarla solo hay que invocarla desde una aplicacion de terminal en el servidor de bacula.

A continuacion, se muestran alguno de los subcomandos mas comunes para dicha consola:

add [pool=<pool-name> Agrega un volumen a un pool existente. Es decir, crea


storage=<storage> jobid=<Jobid>] el nombre del volumen en el catalogo y lo adiciona al
pool, dentro del catalogo, sin embargo, no intenta
acceder al volumen fisico.
Generalmente, el comando label es utilizado en vez de
este comando, porque este ultimo etiqueta el medio
fisico (tape, disco, DVD, entre otros) y realiza el
equivalente al comando add.

automount on/off Este comando acepta on y off como argumentos, y


activa el automontaje del volumen despues de un
comando label, segun este habilitado o deshabilitado.
Por defecto es on.

cancel [jobid=<number> job=<job- Este comando es utilizado para cancelar un job y


name> ujobid=<unique-jobid>] acepta como argumentos el id o el nombre del job. Si
no se indica ningun argumento, se muestra un listado
con todos los nombres de los jobs activos, para que se
pueda seleccionar alguno en particular.

delete [volume=<vol-name> El comando delete se utiliza para borrar registros de


pool=<pool-name> job jobid=id>] volumen, pool o job del catalogo, asi como los registros
asociados al volumen que hayan sido creados. Este
comando unicamente opera en la base de datos del
catalogo y no tiene efecto en la data escrita
actualmente en el volumen. Se recomienda no utilizar
este comando, debido a que puede ser muy peligroso.

disable job<job-name> Este comando permite deshabilitar un job en el


scheduling automatico de respaldos. El job tuvo que ser
previamente habilitado, bien sea utilizando la directiva
Enabled en el recurso de Job o el comando enable en
la consola.

enable job<job-name> Este comando permite habilitar un job en el scheduling


automatico de respaldos. El job se deshabilito
previamente, bien sea utlizando la directiva Enabled en
el recurso del Job o el comando disable en la consola.
estimate El uso de este comando permite tener una idea de
cuantos archivos seran respaldados o ayudar a
determinar los elementos incluidos en el fileset del
respaldo, puesto que se permite probar sin realizar el
backup actual. Se asume por defecto un nivel de full
para la operacion de respaldo. Sin embargo, se puede
especificar un nivel, haciendo uso de los opciones
level=Incremental o level=Differential, en la linea de
comandos.
Se pueden indicar mas opciones, tomando en
consideracion el siguiente formato:
estimate job=<job-name> listing client=<client-name>
fileset=<fileset-name> level=<level-name>

help Muestra un listado de ayuda con los comandos


disponibles.

label Comando utilizado para etiquetar volumenes fisicos. La


sintaxis general para este comando es:
label storage=<storage-name> volume=<volume-
name> slot=<slot>

list El comando list se utiliza para listar el contenido del


catalog. Los campos que conforman cada registro se
muestran en una linea simple. Las formas diversas para
este comando pueden ser alguna de las siguientes:
list jobs
list jobid=<id>
list ujobid=<unique job name>
list job=<job-name>
list jobmedia
list jobmedia jobid=<id>
list jobmedia job=<job-name>
list files jobid=<id>
list files job=<job-name>
list pools
list clients
list jobtotals
list volumes
list volumes jobid=<id>
list volumes pool=<pool-name>
list volumes job=<job-name>
list volume=<volume-name>
list nextvolume job=<job-name>
list nextvol job=<job-name>
list nextvol job=<job-name> days=nnn
llist El comando de “listado extendido”, toma los mismos
argumentos que el comando list, descrito
anteriormente. Sin embargo, la diferencia radica en que
este ultimo muestra el contenido completo para cada
registro seleccionado de la base de datos de catalogo.

messages Muestra en consola los mensajes que se encuentran


pendientes.

mount Este comando le indica a bacula que puede leer un


volumen en un dispositivo fisico. De esta manera, se
senala que se ha montado un tape, y que la aplicacion
esta preparada para examinarla.

prune El comando prune permite remover del catalogo, de


manera segura, registros de jobs y volumenes
expirados. Trabaja unicamente en la base de datos del
catalogo, y no afecta la data escrita en los volumenes.
En cualquiera de los casos, este comando aplica los
periodos de retencion para los registros indicados. Para
que el comando se pueda aplicar, el status del volumen
(VolStatus), debe ser Full, Used o Append, en caso
contrario la operacion de pruning no se llevara a cabo.

purgue El comando purge eliminara de la base de datos del


catalogo los registros de jobs y volumenes, sin
considerar el periodo de retencion. La operacion de
purgue trabaja unicamente en el catalogo, sin afectar la
data escrita en los volumenes. Este comando puede
ser muy danino, puesto que se pueden borrar registros
asociados con los respaldos actuales de archivos. Las
formas permitidas del comando son las siguientes:

purge files jobid=<jobid> -- job=<job-name> --


client=<client-name>
purge jobs client=<client-name> (de todos los jobs)
purge volume—volume=<vol-name> (de todos los jobs)

La data escrita en el volumen no se vera afectada por


este comando.

relabel Este comando es utilizado para etiquetar nuevamente


los volumenes fisicos. La forma completa para este
comando es:
relabel storage=<storage-name> oldvolume=<old-
volumen-name> volume=,newvolume-name>

Para realizar esta operacion, el status del volumen


debe estar marcado como Purged o Recycle. Esto
sucede de manera automatica cuando se aplican los
periodos de retencion o se utiliza el comando purge de
manera explicita. Una vez que el volumen es
reetiquetado, la data escrita con anterioridad es
eliminada y no se puede recuperar.

release El uso de este comando permite al storage daemon


realizar la operacion de rewind al tape montado
actualmente en el drive, y luego releer la etiqueta del
volumen la proxima vez que el tape es utilizado.

release storage=<storage-name>

Reload El comando reload provoca que el director lea


nuevamente su archivo de configuración y aplique los
ajustes realizados. Los nuevos valores tendran de
manera inmediata para los nuevos jobs. Sin embargo,
si se realizan cambios en el schedule, hay que tener
presente que el scheduler, ejecuta una planificacion
previa de jobs de hasta dos (2) horas de preparacion,
por lo tanto, cualquier cambio que tenga lugar durante
las siguientes dos (2) horas se pueden retrasar.

Aunque es posible recargar la configuración del director


en caliente, mientras se estan ejecuando jobs, sin
efectos secundarios, se recomienda que se haga un
reinicio del director en una siguiente oportunidad mas
adecuada.

restore El comando restore permite que se puedan seleccionar


uno o mas jobs (JobIds) para ser restaurados utilizando
varios metodos. El formato general del comando es el
siguiente:

restore storage=<storage-name> client=<backup-client-


name> where=<path> pool=<pool-name>
fileset=<fileset-name> restoreclient=<restore-client-
name> select current all done

run Este comando permite la planificacion de jobs para que


se ejecuten de manera inmediata. La sintaxis completa
del mismo es la siguiente:
run job=<job-name> client=<client-name>
fileset=<FileSet-name> level=<level-keyword>
storage=<storage-name> where=<directory-prefix>
when=<universal-time-specification> yes

Cualquier información que sea necesaria, y no sea


indicada, sera listada para su seleccion por parte del
usuario, y antes de arrancar el job, se le preguntara si
desea aceptar, rechazar o modificar los parametros del
mismo, a menos que se haya especificado la opcion de
yes, en cuyo caso, el job se enviara inmediatamente al
scheduler de respaldo.

show El comando show muestra un listado de los registros de


recursos definidos en el director, tal como se
encuentran en al archivo de configuración
(generalmente, bacula-dir.conf). Las siguientes
opciones son permitidas para el show en linea de
comandos: catalogs, clients, countes, devices,
directors, filesets, jobs, messages, pools, schedules,
storages, all, help.

sqlquery Este comando coloca el programa de consola en modo


consultas de SQL, donde cada linea se concatena a la
anterior hasta que se presiona el caracter “;”. Esta
sentencia se pasa al engine SQL de la base de datos,
para su ejecucion respectiva. Para terminar el modo
SQL query y retornar al prompt de consola de
comandos, se pulsa la tecla “.” en la columna 1.

status Permite desplegar el status de los jobs planificados


para ser ejecutados en las proximas 24 horas, asi como
el status de los jobs actualmente en ejecucion. La
sintaxis general del comando es la siguiente:

status [all –dir=<dir-name> --director – client=<client-


name> --storage=<storage-name> --days=nnn

unmount Permite senalar al demonio de almacenamiento de


bacula (storage daemon) desmontar el dispositivo
indicado. Las formas que puede tomar el comando son
las mismas de mount:

unmount storage=<storage-name> [drive=<num>]


unmount [ jobid=<id> | job=<job-name> ]

Luego de haber desmontado un dispositivo de


almacenamiento, bacula no podra utilizarlo hasta que
se corra un comando mount para este dispositivo. Si
bacula necesita este recurso, el mismo estara
bloqueado y se enviaran notificaciones al operador para
que lleve a cabo la operacion de montaje respectiva.

Si el dispositivo que se esta desmontando es un


autochanger (robotica de respaldo), se hara el unload
del drive indicado en la linea de comandos. Si no se
especifica ninguno, se asume el drive 1.

update Modifica el catalogo para los registros de pools,


volumenes o slots en una robotica con capacidad de
etiquetado de codigo de barras. En el caso de
modificacion de un registro de pool, la nueva
información se tomara de manera automatica del
recurso de configuración correspondiente en el director.
Se puede utilizar para incrementar el numero maximo
de volumenes permitidos o establecer un numero
maximo de volumenes. Las siguientes opciones pueden
ser especificadas:

media, volume, pool, slots

En el caso de modificar un volumen, se preguntara por


el valor que se desea modificar. Los siguientes
parametros pueden ser ajustados:

Volume Status
Volume Retention Period
Volume Use Duration
Maximum Volume Jobs
Maximum Volume Files
Maximum Volume Bytes
Recycle Flag
Recycle Pool
Slot
Inchanger Flag
Pool
Volume Files
Volume From Pool
All Volumes from Pool
All Volumes from all Pools

Para slots, con la opcion update slots, bacula obtendra


una lista de slots y sus respectivas etiquetas de codigos
de barra desde el storage daemon, y para cada codigo
de barra encontrado, se modificara automaticamente el
slot el registro de Media en el catalogo con el nuevo
valor correspondiente.

Para la opcion de pool, update pool, bacula movera los


registros de volumenes desde el pool existente al pool
indicado.

Para las opciones Volume from Pool, All Volumes from


Pool y All Volumes from all Pools, los valores siguientes
son modificados del registro de Pool: Recycle,
RecyclePool, VolRetention, VolUseDuration,
MaxVolJobs, MaxVolFiles y MaxVolBytes.

La sintaxis completa para la accion update desde la


linea de comandos, es la siguiente:

update volume=xxx pool=yyy slots volstatus=xxx


VolRetention=ddd VolUse=ddd MaxVolJobs=nnn
MaxVolBytes=nnn Recycle=yes|no slot=nnn enabled=n
recyclepool=zzz

use Este comando permite especificar el catalogo de base


de datos a utilizar. Normalmente, se utiliza una unica
base de datos. En el caso de utilizar mas de una base
de datos, se puede utilizar este comando para
cambiarse entre una y la otra:

use <database-name>

var Este comando toma una cadena de caracteres y realiza


una expansion de variables, de la misma manera como
es hecha con el string LabelFormat. De esta manera,
se puede hacer una prueba con las cadenas para la
accion de Label Format. La diferencia entre el
comando var y el proceso de Label Format, es que
durante el primero no existe ningun job en ejecucion.

version Imprime la version del director.

quit Termina el programa de consola, enviando un


requerimiento de quit al director, y espera confirmacion
por parte de este. Si el director, esta ocupado con un
comando previo que no ha terminado de ejecutarse,
puede tomar algun tiempo. Se puede salir de la consola
de manera inmediata, ejecutando el comando .quit.

query Este comando lee unas consultas predefinidas de SQL


desde un archivo (el nombre y ubicacion del mismo se
define en el recurso QueryFile, indicado en el archivo
de configuración del director). Cuando se selecciona
esta opcion, se solicita al usuario escoger una consulta
desde el archivo de querys, y posiblemente ingresar
uno o mas parametros, que sera enviada al engine de
SQL a la base de datos del catalogo.

Las opciones configuradas por defecto para este


comando son las siguientes:

Available queries:
1: List up to 20 places where a File is saved regardless of the directory
2: List where the most recent copies of a file are saved
3: List last 20 Full Backups for a Client
4: List all backups for a Client after a specified time
5: List all backups for a Client
6: List Volume Attributes for a selected Volume
7: List Volumes used by selected JobId
8: List Volumes to Restore All Files
9: List Pool Attributes for a selected Pool
10: List total files/bytes by Job
11: List total files/bytes by Volume
12: List Files for a selected JobId
13: List Jobs stored on a selected MediaId
14: List Jobs stored for a given Volume name
15: List Volumes Bacula thinks are in changer
16: List Volumes likely to need replacement from age or errors
Choose a query (1-16):

exit Termina el programa de consola.

wait El comando wait provoca que el director haga una


pausa hasta que no haya jobs en ejecucion. Cuenta
con las siguientes opciones:

wait [jobid=nn] [jobuid=unique jobid] [job=job


name]

Si se indica un JobId, el comando wait esperara por la


terminacion del job en particular para continuar.
Comandos especiales (.)

Adicional a los comandos indicados con anterioridad, existen unos comandos especiales,
que tiene como prefijo un punto (.), que se utilizan en programas batch o en interfaces de
usuario, bien sea graficas o en consola de texto.

Los mas utilizados son:

.backups job=xxx Lista los backups para un job especifico.

.clients Lista todos los nombres de clientes.

.defaults client=xxx fileset=yyy Muestra los valores por defecto para cliente
determinado.

.die Provoca que el director genera un segment fault (para


debugging).

.dir Equivalente al comando dir, pero la salida muestra


campos separados por comas en vez de espacios.

.exit Equivalente al comando quit.

.filesets Lista todos los nombres de los filesets.

.help Salida del comando help.

.jobs Lista todos los nombres de los jobs.

.levels Muestra todos los niveles de respaldos.

.messages Muestra un listado de los mensajes.

.msgs Retorna cualquier mensaje encolado.

.pools Lista los nombres de los pools.

.quit Equivalente al comando quit.

.status Muestra la salida del status.


.storage Retorna los nombres de los recursos de
almacenamiento.

.types Muestra los tipos de jobs.

Ejecucion manual de jobs

En bacula, los jobs se pueden ejecutar de dos (2) maneras:

● Planificada, de acuerdo al scheduling de backup


● Manual, indicando la operacion y acciones por linea de comandos de consola

En este punto, se mostraran los pasos para la ejecucion manual por parte del administrador.
Cuando se ejecuta el comando “run”, para correr un job, se muestra un listado de los jobs
configurados, tal como se observa en el siguiente ejemplo:

A job name must be specified.


The defined Job resources are:
1: Matou
2: Polymatou
3: Rufus
4: Minimatou
5: Minou
6: PmatouVerify
7: MatouVerify
8: RufusVerify
9: Watchdog
Select Job resource (1-9):

Por ejemplo, si se selecciona la opcion cinco (5), se muestra el siguiente menu:

Run Backup job


JobName: Minou
FileSet: Minou Full Set
Level: Incremental
Client: Minou
Storage: DLTDrive
Pool: Default
When: 2003-04-23 17:08:18
OK to run? (yes/mod/no):

Donde se pide al usuario, confirmar la ejecucion del job o modificar sus opciones.Si se
escribe “yes”, se iniciara con la corrida del mismo. Si se ingresa “mod”, se muestra el
siguiente menu de opciones, con los parametros que se pueden modificar para este trabajo:

Parameters to modify:
1: Level
2: Storage
3: Job
4: FileSet
5: Client
6: When
7: Pool
Select parameter to modify (1-7)

Si se desea iniciar un job en una hora posterior, se configura el valor de “When”,


seleccionando la opcion 6 del menu de usuario. Posteriormente, se ingresa la hora deseada,
con el formato requerido de YYYY-MM-DD HH:MM:SS.

Restauraciones o recuperaciones

Una de las operaciones fundamentales en la administración de los respaldos, la representa la


recuperacion de datos, en caso que sean necesarios por parte de los usuarios, para alguna
actividad en particular.

Basicamente, la restauracion se hara desde la consola de administración bconsole, aunque


tambien se puede utilizar la consola grafica y web, que permite configurar con mayores
especificaciones esta actividad, y para esto se ejecuta el comando restore.

El comando restore, se encarga de ubicar el objeto a restaurar, el job que genero la entrada,
el volumen donde esta almacenado, la seleccion del (los) objeto(s) por parte del usuario y la
recuperacion del mismo.

Cuando se invoca el comando restore, se muestra el siguiente submenu:

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: Cancel

De las opciones desplegadas, las mas utilizadas se corresponden con la numero 5) y la


numero 6).

En este caso, se escogio la opcion numero 5), y con esto se muestra la siguiente
información:

Select item: (1-12): 5 Automatically selected Client: debian-fd


The defined FileSet resources are:
1: Catalog
2: Full Set
Select FileSet resource (1-2): 2 +-------+-------+----------+------------
+---------------------+------------+
| JobId | Level | JobFiles | JobBytes | StartTime | VolumeName |
+-------+-------+----------+------------+---------------------+------------+
| 27 | F | 2,951 | 19,706,990 | 2009-04-23 20:37:55 | Prueba001 |
| 28 | I | 0 | 0 | 2009-04-23 20:39:27 | Prueba001 |
| 29 | I | 9 | 635 | 2009-04-25 06:54:27 | Prueba001 |
| 30 | I | 2 | 0 | 2009-04-25 06:55:21 | Prueba001 |
| 31 | I | 1 | 0 | 2009-04-25 06:56:24 | Prueba001 |
| 32 | I | 8 | 635 | 2009-04-25 11:00:13 | Prueba001 |
| 34 | I | 9 | 750 | 2009-05-17 22:55:21 | Prueba001 |
+-------+-------+----------+------------+---------------------+------------+
You have selected the following JobIds: 27,28,29,30,31,32,34

Building directory tree for JobId 27 ... +++++++++++++++++++++++++++++++++++++++++


+++++++
Building directory tree for JobId 28 ...
Building directory tree for JobId 29 ...
Building directory tree for JobId 30 ...
Building directory tree for JobId 31 ...
Building directory tree for JobId 32 ...
Building directory tree for JobId 34 ...
7 Jobs, 2,898 files inserted into the tree.

Luego de solicitar el FileSet, que define la información a restaurar, se indica al usuario los
volumenes y jobids que seran utilizados en la operacion.

Seguidamente, se muestra al usuario un prompt, donde se seleccionaran los ojbetos a


restaurar. Para ello, se cuenta con los siguiente comandos:

Command Description
======= ===========
cd change current directory
count count marked files in and below the cd
dir long list current directory, wildcards allowed
done leave file selection mode
estimate estimate restore size
exit same as done command
find find files, wildcards allowed
help print help
ls list current directory, wildcards allowed
lsmark list the marked files in and below the cd
mark mark dir/file to be restored recursively in dirs
markdir mark directory name to be restored (no files)
pwd print current working directory
unmark unmark dir/file to be restored recursively in dir
unmarkdir unmark directory name only no recursion
quit quit and do not do restore
? print help

En este, se escogera el archivo /etc/hosts. Para ello el comando ejecutado es:


mark /etc/hosts.

Una vez realizada la seleccion, se ejecuta el comando done, para finalizar con el proceso de
seleccion.

A continuación, se muestra al usuario la información de la seleccion:

$ done Bootstrap records written to /var/lib/bacula/debian-dir.restore.1.bsr

The job will require the following


Volume(s) Storage(s) SD Device(s)
===========================================================================

Prueba001 File FileStorage

1 file selected to be restored.

Run Restore job


JobName: RestoreFiles
Bootstrap: /var/lib/bacula/debian-dir.restore.1.bsr
Where: /nonexistant/path/to/file/archive/dir/bacula-restores
Replace: always
FileSet: Full Set
Backup Client: debian-fd
Restore Client: debian-fd
Storage: File
When: 2009-05-17 22:56:30
Catalog: MyCatalog
Priority: 10
OK to run? (yes/mod/no): mod

En este caso, se modificara el directorio donde se hara la restauracion. Por ello, se teclea
mod, en el dialogo de confirmacion que se muestra el usuario, con lo cual se despliega el
siguiente submenu:
Parameters to modify:
1: Level
2: Storage
3: Job
4: FileSet
5: Restore Client
6: When
7: Priority
8: Bootstrap
9: Where
10: File Relocation
11: Replace
12: JobId
Select parameter to modify (1-12): 9

Tal como se aprecia el parametro a modificar es “9”, que permite configurar el directorio
donde se hara la recuperacion.

Please enter path prefix for restore (/ for none): /tmp Run Restore job

JobName: RestoreFiles
Bootstrap: /var/lib/bacula/debian-dir.restore.1.bsr
Where: /tmp
Replace: always
FileSet: Full Set
Backup Client: debian-fd
Restore Client: debian-fd
Storage: File
When: 2009-05-17 22:56:30
Catalog: MyCatalog
Priority: 10
OK to run? (yes/mod/no): yes

Luego de haber realizado la seleccion respectiva, ya se puede iniciar la operacion de


restauracion.

Al finalizar el job de restauracion, se muestra un mensaje en la consola, indicando la


finalizacion exitosa o no del mismo, que puede tener la siguiente estructura:

* * * *mess 17-May 22:56 debian-dir JobId 36: Start Restore Job RestoreFiles.
2009-05-17_22.56.06
17-May 22:56 debian-dir JobId 36: Using Device "FileStorage"
17-May 22:56 debian-sd JobId 36: Ready to read from volume "Prueba001" on device
"FileStorage" (/home/bacula).
17-May 22:56 debian-sd JobId 36: Forward spacing Volume "Prueba001" to file:block
0:195.
17-May 22:56 debian-sd JobId 36: End of Volume at file 0 on device
"FileStorage" (/home/bacula), Volume "Prueba001"
17-May 22:56 debian-sd JobId 36: End of all volumes.
17-May 22:56 debian-dir JobId 36: Bacula debian-dir 2.2.8 (26Jan08): 17-May-2009
22:56:52
Build OS: i486-pc-linux-gnu debian 4.0
JobId: 36
Job: RestoreFiles.2009-05-17_22.56.06
Restore Client: debian-fd
Start time: 17-May-2009 22:56:51
End time: 17-May-2009 22:56:52
Files Expected: 1
Files Restored: 1
Bytes Restored: 245
Rate: 0.2 KB/s
FD Errors: 0
FD termination status: OK
SD termination status: OK
Termination: Restore OK

17-May 22:56 debian-dir JobId 36: Begin pruning Jobs.


17-May 22:56 debian-dir JobId 36: No Jobs found to prune.
17-May 22:56 debian-dir JobId 36: Begin pruning Files.
17-May 22:56 debian-dir JobId 36: No Files found to prune.
17-May 22:56 debian-dir JobId 36: End auto prune.

S-ar putea să vă placă și