• No se han encontrado resultados

Comandos utiles de la consola de bacula (bconsole) y ejemplos de ejecución manual de jobs de respaldo y restauracion

N/A
N/A
Protected

Academic year: 2021

Share "Comandos utiles de la consola de bacula (bconsole) y ejemplos de ejecución manual de jobs de respaldo y restauracion"

Copied!
16
0
0

Texto completo

(1)

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

(2)

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>

storage=<storage> jobid=<Jobid>]

Agrega un volumen a un pool existente. Es decir, crea 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-name> ujobid=<unique-jobid>] Este comando es utilizado para cancelar un job y 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> pool=<pool-name> job jobid=id>]

El comando delete se utiliza para borrar registros de 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.

(3)

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>

(4)

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:

(5)

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:

(6)

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-client=<client-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:

(7)

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

(8)

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

(9)

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.

(10)

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.

(11)

.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

(12)

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).

(13)

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

(14)

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

(15)

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.

(16)

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

Referencias

Documento similar

different temperatures and matric suction steps for varying applied net vertical stresses (main drying paths)...268 Figure 6.16 Swelling and shrinkage strains for the

The architecture has been called Multimedia Information Protection and Management System (MIPAMS). We have presented the integral components is consists of, we have analysed in

The analysis of the stories precise us with lot of clearness that the existence of middlemen is given in three main ambits, the first one is related to the support in the

The use of a semi-active magnetorheological damper reduces self-excited vibration and increases the axial depth of cut during thin-floor milling processes with a

This study will research the possibility of replacing the typical solvents used in the obtention of ASA, considering the option to use ionic liquids (ILs) instead of

After considering the selected criteria and taking into account the Golden Standard and the ontologies of the repository, the system retrieves a ranked list of ontologies (ordered

For each experimental Δmass SiteSolver selected the allowed sites first from a user-curated list of theoretical Δmasses and their corresponding modifiable residues (See

Finally, in the light of these contributions, I present my own approach to the study of 'documentary' in Reaney's history plays The Donnellys and Baldoon regarding the plays