Bacula es un servidor de backup del que ya hablamos e hicimos alguna que otra cosa en este blog. Entre otras muchas facilidades permite conectarnos de forma transparente a una cabina de cintas y tener programadas una serie de tareas de backup que realiza automáticamente.
Como todo servicio de backup, si un día es necesario recuperar un archivo debe facilitarnos esa tarea, por lo tanto, vamos a ver cómo recuperar archivos que necesitemos de un equipo. Para ello haremos uso del comando bconsole, la consola de conexión y control de Bacula.
shell> bconsole Connecting to Director backup.local.net:9101 1000 OK: backup-dir Version: 5.0.2 (28 April 2010) Enter a period to cancel a command. *
Este comando nos abrirá un pequeño promt con comandos específicos para el manejo de Bacula El objetivo de este post no es otro que enseñar a recuperar un archivo desde backup, así que emplearemos el comando restore. Si deseamos más información de lo que se puede o no hacer, tenemos el comando help.
Al seleccionar el modo de recuperación, nos aparecerán las siguiente opciones.
* restore Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" 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 item: (1-13): 5
Aquí tenemos que elegir una y en nuestro caso, como nos interesa recuperar un archivo de un equipo concreto, la mejor forma es seleccionando la opción 5, "Select the most recent backup for a client". A continuación se nos mostrará un listado de todos los equipos de los que hacemos backup, seleccionaremos el que deseemos.
Defined Clients: 1: backup-fd 2: bacula-fd 3: dhcp-fd 4: mail-fd 5: mirror-fd 6: zabbix-fd Select the Client (1-6): 6
Tras la selección, Bacula hará un reescaneo de todos los datos que tiene de ese equipo. Puesto que el catálogo lo almacena en base de datos, no habrá que consultarlo en disco/cinta, por lo que será más rápido. Tras recuperar todo el catálogo se nos dará acceso a un promt especial, similar a la navegación en shell de GNU/Linux. De esta forma veremos los archivos de los que tenemos backup y podremos navegar por carpetas y ficheros. Los comandos más importantes y necesarios aquí son cd, ls, mark, markdir y done. En especial estos últimos 3, que se emplearán para marcar los archivos o carpetas que deseemos recuperar y done, que indicará que la selección ha finalizado y se procederá a la recuperación de los datos.
Automatically selected FileSet: zabbix-fs +-------+-------+----------+----------+------------------+------------+ | JobId | Level | JobFiles | JobBytes | StartTime | VolumeName | +-------+-------+----------+----------+------------------+------------+ | 6,644 | F | 2,219 | 940,846 | 2013-01-13 02:06 | 368BGLL4 | | 6,671 | I | 12 | 786,796 | 2013-01-14 02:05 | 365BGLL4 | | 6,698 | I | 13 | 253,813 | 2013-01-15 02:05 | 365BGLL4 | | 6,725 | I | 12 | 287,815 | 2013-01-16 02:05 | 365BGLL4 | +-------+-------+----------+----------+------------------+------------+ You have selected the following JobIds: 6644,6671,6698,6725 Building directory tree for JobId(s) 6644,6671,6698,6725... ++++++++++++ 1,943 files inserted into the tree. You are now entering file selection mode where you add (mark) and remove (unmark) files to be restored. No files are initially added, unless you used the "all" keyword on the command line. Enter "done" to leave this mode. cwd is: / $ ls etc/ usr/ var/ $ cd etc cwd is: /etc/ $ ls aide/ bacula/ group hostname passwd postfix/ puppet/ ssh/ zabbix/ $ cd zabbix/ cwd is: /etc/zabbix/ $ ls zabbix_agent.conf zabbix_agentd.conf $ mark zabbix_agentd.conf 1 file marked. $ done Bootstrap records written to /var/lib/bacula/zabbix-dir.restore.1.bsr The job will require the following Volume(s) Storage(s) SD Device(s) =========================================== *368BGLL4 ULT3580-HH4 ULT3580-HH4 Volumes marked with "*" are online. 1 file selected to be restored. Run Restore job JobName: RestoreFiles Bootstrap: /var/lib/bacula/zabbix-dir.restore.1.bsr Where: /tmp/bacula-restores Replace: always FileSet: Full Set Backup Client: zabbix-fd Restore Client: zabbix-fd Storage: ULT3580-HH4 When: 2013-01-16 19:56:16 Catalog: MyCatalog Priority: 10 Plugin Options: *None* OK to run? (yes/mod/no): yes
Como se puede observar, al escribir done nos indica que se va a proceder a recuperar los ficheros seleccionados y creará un nuevo trabajo de restauración para tal efecto. Si no modificamos ninguna de las opciones, por defecto nos dejará los ficheros seleccionados en /tmp/bacula-restores del equipo remoto. Ya luego tendremos manualmente que moverlos a donde corresponda si procede.
En mi caso, puesto que empleo cintas de backup como medio de almacenamiento, esta tarea se puede demorar algo más, puesto que debe ir buscando los archivos solicitados entre los más recientes en las cintas que procedan. Si empleas disco como medio, será mucho más rápido.
pero si el respaldo no esta en la base de datos si no solamente en un Taper?
ResponderEliminarA qué te refieres con que únicamente esté en la cinta?
Eliminar