Nous allons maintenant décrire la restauration de fichiers avec la commande restore de la Console, qui est le mode de restauration recommandé. Il existe cependant un programme indépendant nommé bextract, qui permet lui aussi de restaurer des fichiers. Pour plus d'informations sur ce programme, consultez le chapitre Programmes utilitaires Bacula de ce manuel. Vous y trouverez aussi des informations sur le programme bls qui sert à produire une liste du contenu de vos volumes, et sur le programme bscan qui vous sera utilie si vous voulez restaurer les enregistrements du catalogue relatifs à un ancien volume qui n'y figure plus.
En général, pour restaurer un fichier ou un ensemble de fichiers, vous devez exécuter un job de type restore, par conséquent, vous devez prédéfinir un tel job dans le fichier de configuration de votre Director. Les paramètres (Client, FileSet,...) que vous définissez ici ne sont pas importants, Bacula les ajustera automatiquement lors de l'utilisation de restore.
Bacula étant un programme réseau, il vous appartient de vous assurer que vous avez sélectionné le bon client et le bon disque dur pour recevoir la restauration. Bacula peut sauvegarder le client A et restaurer ses fichiers sur le client B, pourvu que leurs systèmes ne soient pas trop différents au niveau de leurs structures de fichiers. Par défaut, Bacula restaure les données sur leur client d'origine, mais pas à leur emplacement d'origine : dans le répertoire /tmp/bacula-restores. Vous pouvez modifier ces valeurs par défaut lorsque la commande restore vous demande confirmation d'exécution du job en choisissant l'option mod.
Ceci est réalisé par la commande restore de la Console. Vous sélectionnez d'abord le type de restauration souhaitée ce qui entraîne la sélection des JobIds requis et la construction d'une arborescence interne à Bacula contenant les enregistrements de fichiers des JobIds sélectionnés. A ce stade, le processus de restauration entre dans un mode où vous pouvez naviguer interactivement dans l'arborescence des fichiers disponibles pour restauration et sélectionner ceux que vous voulez restaurer. Ce mode est similaire au programme de sélection de fichier interactif standard d'Unix restore.
Si vos fichiers ont été élagués, la commande restore sera dans l'incapacité de les trouver. Voyez ci-dessous pour plus de détails sur ce cas de figure.
Dans la Console, après avoir saisi restore, le menu suivant vous est présenté :
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: Cancel
Select item: (1-12):
Notez que ce processus de sélection automatique ne sélectionnera jamais un job qui a échoué (terminé avec un statut d'erreur). Si vous disposez d'un tel job dont vous voulez extraire des fichiers, vous devez eplicitement entrer son JobId au niveau du choix 3 et choisir les fichiers à restaurer.
Si certains de jobs requis pour la restauration ont eu leurs enregistrements de fichiers élagués, la restauration sera incomplète. Bacula ne détecte pas, pour l'instant, cette condition. Vous pouvez cependant la contrôler en examinant attentivement la liste des jobs sélectionnés et affichés par Bacula. Si vous trouvez des jobs dont le champ JobFiles est à zéro alors que ces fichiers auraient dû être sauvegardés, alors vous pouvez vous attendre à des problèmes.
Si tous les enregistrements de fichiers ont été élagués, Bacula constatera qu'il n'y a aucune référence à aucun fichier pour le JobIds sélectionnés et vous en informera, et vous proposera de faire une restauration complète (non sélective) de ces JobIds. Ceci est possible car Bacula sait encore où commencent les données sur les volumes, même s'il ne sait plus où sont les fichiers individuellement.
A titre d'exemple, supposons que nous sélectionnions l'option 5 (restaurer à l'état le plus récent). Bacula vous demande alors le client désiré ce qui, sur mon système, se manifeste ainsi :
Defined clients:
1: Rufus
2: Matou
3: Polymatou
4: Minimatou
5: Minou
6: MatouVerify
7: PmatouVerify
8: RufusVerify
9: Watchdog
Select Client (File daemon) resource (1-9):
Si vous n'avez qu'un client, il est automatiquement sélectionné. Dans le cas présent, j'entre Rufus pour sélectionner ce client. Bacula a maintenant connaître le FileSet à restaurer, aussi il affiche :
The defined FileSet resources are:
1: Full Set
2: Kerns Files
Select FileSet resource (1-2):
J'opte pour le choix 1, ma sauvegarde full. En principe, vous n'aurez qu'un FileSet pour chaque job, et si vos machines de ressemblent (mêmes systèmes), vous pouvez n'avoir qu'un seul FileSet pour tous vos clients.
A ce stade, Bacula détient toutes les informations dont il a besoin pour trouver le jeu de sauvegardes le plus récent. Il va maintenant interroger le cataloguie, ce qui peut prendre un peu de temps, et afficher quelque chose comme :
+-------+------+----------+-------------+-------------+------+-------+---------- --+ | JobId | Levl | JobFiles | StartTime | VolumeName | File | SesId | VolSesTime | +-------+------+----------+-------------+-------------+------+-------+---------- --+ | 1,792 | F | 128,374 | 08-03 01:58 | DLT-19Jul02 | 67 | 18 | 1028042998 | | 1,792 | F | 128,374 | 08-03 01:58 | DLT-04Aug02 | 0 | 18 | 1028042998 | | 1,797 | I | 254 | 08-04 13:53 | DLT-04Aug02 | 5 | 23 | 1028042998 | | 1,798 | I | 15 | 08-05 01:05 | DLT-04Aug02 | 6 | 24 | 1028042998 | +-------+------+----------+-------------+-------------+------+-------+---------- --+ You have selected the following JobId: 1792,1792,1797 Building directory tree for JobId 1792 ... Building directory tree for JobId 1797 ... Building directory tree for JobId 1798 ... cwd is: / $
(Certaines colonnes sont tromquées pour des nécessités de mise en page).
Selon le nombre de JobFiles pour chaque JobId, la construction de l'arborescence peut prendre un certain temps. Si vous constatez que tous les JobFiles sont à zéro, vos fichiers ont probalement été élagués et vous ne pourrez pas sélectionner les fichiers individuellement : vous devrez restaurer tout ou rien.
Dans notre exemple, Bacula a trouvé quatre jobs qui comprennent la sauvegarde la plus récente du client et du FileSet spécifiés. Deux des jobs ont le même JobId car le job a écrit sur deux volumes différents. Le troisième est une incrémentale qui n'a sauvegardé que 254 fichier sur les 128 374 de la full. Le quatrième est aussi une incrémentale, et n'a sauvegardé que 15 fichiers.
Maintenant Bacula insère ces jobs dans l'arborescence, sans en marquer aucun pour restauration par défaut. Il vous indique le nombre de fichiers dans l'arbre, et vous informe que le répertoire de travail courant (cwd) est /. Finalement, Bacula vous invite avec le signe ($) à saisir des commandes pour vous déplacer dans l'arborescence, et sélectionner des fichiers.
Si vous voulez que tous les fichiers de l'arbre soient marqués pour restauration à sa construction, tapez restore all.
Plutôt que de choisir l'option 5 du premier menu (sélectionner la sauvegarde la plus récente pour un client), si nous avions choisi l'option 3 (Entrer une liste de JobIds à sélectionner), et si nous avions saisi 1792,1797,1798, nous serions arrivés au même point.
Il faut noter un point si vous saisissez manuellement les JobIds : vous devez les entrer dans l'ordre où ils ont été exécutés (en général, l'ordre croissant. Si vous les sasissez dans un ordre différent, vous courrez le risque de ne pas version la plus récente d'un fichier sauvegardé plusieurs fois si celui-ci a été sauvegardé dans plusieurs jobs.
Entre vos JobIds directement peut aussi vous permettre de restaurer depuis un job qui a écrit des données sur les volumes mais qui s'est terminé en erreur.
Dans le mode sélection de fichiers, vous pouvez utiliser help ou une question (?) pour produire un résumé des commandes disponibles :
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
Par défaut, aucun fichier n'est sélectionné pour restauration (sauf si vous avez ajouté all à la ligne de commande). Si, à ce stade, vous voulez tout restaurer, vous devriez saisir mark *, puis done, Bacula écrira alors les données bootstrap dans un fichier et sollicitera votre approbation pour démarrer la restauration.
Si vous n'utilisez pas mark *, vous commencez avec une sélection vide. Vous pouvez simplement regarder et marquer (mark) les fichiers et/ou répertoires qui vous intéressent. Il est aisé de commettre une erreur dans ces opérations, et la gestion des erreurs dans Bacula n'est pas parfaite, aussi contrôlez votre travail avec la commande ls ou dir pour voir quels fichiers ont été sélectionnés. Les fichiers sélectionnés sont précédés d'une astérisque.
Pour contrôler ce qui est marqué et ce qui ne l'est pas utilisez la commande count qui affiche :
128401 total files. 128401 marked to be restored.
Chacune des commandes ci-dessus sera expliqué plus en détail dans la prochaine section. Poursuivons avec notre exemple, en validant la restauration de tous les fichiers. En saisissant done, Bacula affiche :
Bootstrap records written to /home/kern/bacula/working/restore.bsr The restore job will require the following Volumes: DLT-19Jul02 DLT-04Aug02 128401 files selected to restore. Run Restore job JobName: kernsrestore Bootstrap: /home/kern/bacula/working/restore.bsr Where: /tmp/bacula-restores Replace: always FileSet: Kerns Files Client: Rufus Storage: SDT-10000 JobId: *None* OK to run? (yes/mod/no):
Examinez chaque élément attentivement pour vous assurer que tout est conforme à ce que vous souhaitez. En particulier, vérifiez la ligne where, qui vous indique dans quelle partie du système de fichiers vos données seront restaurées, et quel client va les recevoir (par défaut, les restaurations ont lieu sur le client d'origine). Ces paramètres n'auront pas forcément les bonnes valeurs, mais vous pouvez les modifier à l'aide de la commande mod et en vous laissant guider par l'invite de la console.
L'affichage ci-dessus suppose que vous ayez défini une ressource Job de type restore dans le fichier de configuration de votre Director. en principe, vous n'en n'aurez besoin que d'une, car, par nature, une restauration est une opération essentiellement manuelle. A l'aide de la Console, vous pourrez modifier le job Restore pour faire ce que vous voulez qu'il fasse.
Un exemple de ressource Job de type restore est donné plus bas.
Pour en revenir à notre exemple, en plus de vérifier le client, il est sage de vérifier que le périphérique de stockage choisi par Bacula est le bon. Bien que le FileSet soit présenté, il est en fait ignoré dans la restauration. Le processus de restauration choisit ses fichiers en lisant le fichier bootstrap, et restaure tous les fichiers associés au JobId considéré si ce fichier n'est pas spécifié.
Enfin, avant de lancer la restauration, notez que le lieu par défaut pour les fichiers restaurés n'est pas leur emplacement d'origine mais le répertoire /tmp/bacula-restores. Vous pouvez modifier cette valeur par défaut dans le fichier de configuration du Director, ou avec l'option mod. Si vous voulez restaurer les fichiers à leurs emplacements d'origine, modifiez l'option where : spécifiez la racine (/ ou rien du tout).
Si vous entrez maintenant yes, Bacula lance la restauration. le Storage Daemon va d'abord requérir le volume DLT-19Jul02, puis le DLT-04Aug02 une fois qu'il aura extrait les fichiers requis du premier.
Si vous n'avez qu'un petit nombre de fichiers à restaurer dont vous connaissez les noms, vous pouvez, aux choix, placer ces noms dans un fichier qui sera lu par Bacula, ou saisir les noms un par un. Les noms de fichier doivent inclure le chemin absolu. Les caractères jokers ne peuvent être utilisés.
Pour saisir la liste, choisissez l'option 7 dans le menu de la commande restore :
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
Select item: (1-12):
Vous êtes alors invité à préciser le client :
Defined Clients:
1: Timmy
2: Tibs
3: Rufus
Select the Client (1-3): 3
Si vous n'avez qu'un client, il est sélectionné automatiquement. Finalement, Bacula vous demande d'entrer un nom de fichier :
Enter filename:
Vous pouvez, à ce stade, saisir le chemin absolu et le nom du fichier :
Enter filename: /home/kern/bacula/k/Makefile.in Enter filename:
Si Bacula ne peut en trouver aucune copie, il affiche ce qui suit :
Enter filename: junk filename No database record found for: junk filename Enter filename:
Si vous souhaitez que Bacula récupère la liste des fichiers à restaurer depuis un fichier, rédigez ce fichier et donnez lui un nom commençant par le signe moins (<) et saisissez-le ici. Lorsque vous avez entré tous les noms de fichiers, validez une ligne vide. Bacula écrit maintenant le fichier bootstrap, vous indique les cartouches qui seront utilisées, et vous propose de valider la restauration :
Enter filename: Automatically selected Storage: DDS-4 Bootstrap records written to /home/kern/bacula/working/restore.bsr The restore job will require the following Volumes: test1 1 file selected to restore. Run Restore job JobName: kernsrestore Bootstrap: /home/kern/bacula/working/restore.bsr Where: /tmp/bacula-restores Replace: always FileSet: Kerns Files Client: Rufus Storage: DDS-4 When: 2003-09-11 10:20:53 Priority: 10 OK to run? (yes/mod/no):
Il est possible d'automatiser la sélection des fichiers en plaçant votre liste de fichiers dans, part exemple, /tmp/file-list, puis en utilisant la commande suivante :
restore client=Rufus file=</tmp/file-list
Si, en modifiant les paramètres du job restauration, vous constatez que Bacula vous demande d'entrer un numéro de job, c'est vous n'avez pour l'instant spécifié ni numéro de job, ni fichier bootstrap. Entrez simplement zéro pour pouvoir continuer et sélectionner une autre option à modifier.
Si tout ce qui précède vous a semblé compliqué, vous admettrez certainement que ce n'est vraiment pas le cas après quelques essais. Il est possible de faire tout ce qui vient d'être vu en utilisant la ligne de commande, à l'exception de la sélection du FileSet. Voici une telle ligne de commande :
restore client=Rufus select current all done yes
Le spécification client=Rufus sélectionne automatiquement le client Rufus, l'option current précise que vous voulez une restauration à l'état le plus récent possible, et le yes élude l'invite finale yes/mod/no et exécute directement la restauration.
Voici la liste des arguments de la ligne de commandes :
Selon la façon dont vous restaurez, vous pouvez ou non restaurer les attributs de fichiers à leur état initial. Voici quelques uns des problèmes auxquels vous pouvez être confrontés, et, pour les restaurations sur la machine d'origine, comment les éviter.
Pour éviter ce problème, vous devriez créer le répertoire alternatif avant de lancer la restauration. Bacula ne changera pas les attributs de ce répertoire, du moment que ce n'est pas l'un des répertoires à restaurer.
Le répertoire de restauration par défaut est /tmp/bacula-restores/, qui devient /tmp/bacula-restores/e/ si vous restaurez depuis le disque E. Aussi, assurez-vous que ce répertoire existe avant de lancer la restauration, ou utilisez l'option mod pour sélectionner un répertoire destination existant.
Certains utilisateurs ont signalé des problèmes en restaurant des fichiers qui participent à Active Directory. Ils ont aussi rapporté que le changement de l'Id utilisateur sous lequel est exécuté Bacula de SYSTEM en un Id d'administrateur du domaine résout le problème.
Restaurer des fichiers est généralement beaucoup plus lent que de les sauvegarder, ce pour plusieurs raisons. La première est que lors d'une sauvegarde, la cartouche est normalement déjà positionnée, Bacula n'a qu'à écrire dessus. D'autre part, les restaurations étant si rares (par rapport aux sauvegardes), Bacula ne garde dans le catalogue que l'emplacement sur la cartouche du premier fichier et du premier bloc pour chaque job, et non l'emplacement de chaque fichier, ce qui occuperait trop de place dans le catalogue.
Bacula se place d'abord sur la bonne marque de fichier sur la cartouche, puis sur le bloc correct, puis lit séquentiellement chaque enregistrement jusqu'à trouver ceux correspondant aux fichier que vous voulez restaurer. Une fois ces fichiers restaurés, Bacula cesse de lire la cartouche.
Enfin, au lieu de simplement lire un fichier comme pour une sauvegarde, Bacula doit, lors d'une restauration, créer les fichiers, tandis que le système d'exploitation doit, de son coté, allouer de l'espace disque pour ces fichiers restaurés.
Pour toutes ces raisons, le processus de restauration est généralement beaucoup plus lent que celui de sauvegarde (une restauration peut prendre trois fois plus de temps que la sauvegarde).
Les problèmes que les utilisateurs rencontrent le plus souvent lors des restaurations sont des messages d'erreurs tels que :
04-Jan 00:33 z217-sd: RestoreFiles.2005-01-04_00.31.04 Error: block.c:868 Volume data error at 20:0! Short block of 512 bytes on device /dev/tape discarded.
ou
04-Jan 00:33 z217-sd: RestoreFiles.2005-01-04_00.31.04 Error: block.c:264 Volume data error at 20:0! Wanted ID: "BB02", got ".". Buffer discarded.
Ces deux types de messages indiquent que vous avez probablement utilisé votre lecteur en mode "blocs de taille fixe" plutôt qu'en mode "blocs de taille variable". Le mode "blocs de taille fixe" fonctionne avec tout programme qui lit les cartouches séquentiellement tel que tar, cependant Bacula repositionne la bande suivant les blocs lors des restaurations, ce qui lui permet d'améliorer les performances en restauration de plusieurs ordres de grandeur lorsqu'il s'agit de restaurer quelques fichiers isolés. Il existe plusieurs moyens pour vous tirer de ce mauvais pas.
Tentez-les l'un après l'autre, en rétablissant votre ressource Device après chacun des tests :
Il existe de multiples causes qui peuvent être à l'origine de messages d'alerte ou d'erreurs lors des restaurations. Les plus courantes sont les suivantes :
Si en revanche la taille du fichier restaurée est plus petite, vous devriez pousser vos investigations du coté d'un éventuel problème de bande et contrôler les rapports de Bacula ainsi que votre système de journalisation.
Job {
Name = "RestoreFiles"
Type = Restore
Client = Any-client
FileSet = "Any-FileSet"
Storage = Any-storage
Where = /tmp/bacula-restores
Messages = Standard
Pool = Default
}
Si la directive Where n'est pas précisée, les fichiers sont restaurés à
leur emplacement d'origine.
Une fois que vous avez sélectionné les jobs à restaurer et après que Bacula a créé l'arborescence des répertoires en mémoire, vous entrez dans le mode de sélection de fichiers, ce qui est rappelé par l'invite ($). Dans ce mode, vous pouvez utiliser les commandes énumérées plus haut. Vous pouvez naviguer dans l'arborescence avec la commande cd tout comme vous le feriez dans un système de fichiers. Lorsque vous êtes dans un répertoire, vous pouvez en sélectionner des fichiers ou répertoires pour restauration. Par défaut, aucun fichier n'est sélectionné. Si vous souhaitez au contraire partir d'une situation où tous les fichiers sont sélectionnés, saisissez simplement : cd / et mark *. Sinon, sélectionnez vos fichiers avec la commande mark. Les commandes disponibles sont :
Notez que sur les systèmes Windows, les différents disques (c:, d:, ...) sont traités comme des répertoires dans l'arborescence. Une conséquence est que vous devez saisir cd c: ou éventuellement cd C: pour descendre dans le premier répertoire.
Après exécution, la commande mark affiche un bref résumé :
No files marked.
si aucun fichier n'a été sélectionné, ou :
nn files marked.
si certains fichiers ont été sélectionnés.
Je présente ici quelques-uns des problèmes qui peuvent survenir et rendre les opérations de restaurations plus difficiles, et quelques idées pour se sortir de ces situations délicates. Des informations plus spécifiques aux restaurations complètes des clients ou du serveur sont fournies dans le chapitre Disaster recovery avec Bacula.
Dans le cas contraire, vous devrez restaurer le catalogue.
./drop_bacula_tables ./make_bacula_tablesAprès réinitialisation de la base, vous devriez pouvoir démarrer Bacula. Si vous tentez maintenat d'utiliser la commande run, ça ne marchera pas puisque le catalogue est vierge. Cependant, vous pouvez exécuter manuellement un job et spécifier votre fichier bootstrap. Pour cela, utilisez la commande run et choisissez un job de type retore. Si vous utilisez le bacula-dir.conf par défaut, il s'agit de RestoreFiles. Vous devriez obtenir quelque chose comme :
Run Restore job JobName: RestoreFiles Bootstrap: /home/kern/bacula/working/restore.bsr Where: /tmp/bacula-restores Replace: always FileSet: Full Set Client: rufus-fd Storage: File When: 2005-07-10 17:33:40 Catalog: MyCatalog Priority: 10 OK to run? (yes/mod/no):Plusieurs paramètres seront différents dans votre cas. Vous aller modifier (commande mod) le paramètre Bootstrap pour qu'il pointe vers votre fichier bootstrap, et vous assurer que les autres paramètres sont corrects. Notez que le FileSet est ignoré lorque vous utilisez un fichier bootstrap. Une fois que vous avez fixé tous les bons paramètres, exévutez le job, vous devriez récupérer la sauvegarde de votre catalogue. Il vous reste alors à régénérer votre base de données à partir du fichier de sauvegarde ASCII.
22-Apr 10:22 HeadMan: Start Backup JobId 7510, Job=CatalogBackup.2005-04-22_01.10.0 22-Apr 10:23 HeadMan: Bacula 1.37.14 (21Apr05): 22-Apr-2005 10:23:06 JobId: 7510 Job: CatalogBackup.2005-04-22_01.10.00 Backup Level: Full Client: Polymatou FileSet: "CatalogFile" 2003-04-10 01:24:01 Pool: "Default" Storage: "DLTDrive" Start time: 22-Apr-2005 10:21:00 End time: 22-Apr-2005 10:23:06 FD Files Written: 1 SD Files Written: 1 FD Bytes Written: 210,739,395 SD Bytes Written: 210,739,521 Rate: 1672.5 KB/s Software Compression: None Volume name(s): DLT-22Apr05 Volume Session Id: 11 Volume Session Time: 1114075126 Last Volume Bytes: 1,428,240,465 Non-fatal FD errors: 0 SD Errors: 0 FD termination status: OK SD termination status: OK Termination: Backup OKAvec ces informations, vous pouvez créer manuellement un fichier bootstrap et embrayer sur les instructions données plus haut pour restaurer le catalogue. Un fichier bootstrap reconstruit pour le job ci-dessus ressemblerait à ceci :
Volume="DLT-22Apr05" VolSessionId=11 VolSessionTime=1114075126 FileIndex=1-1
où les valeurs Volume name, Volume Session Id , et Volume Session Time conformes à celles du rapport de job ont été introduites. Notez aussi le FileIndex de valeur 1, ce sera toujours le cas pourvu qu'un seul fichier ait été sauvegardé par le job.
L'inconvénient de ce fichier bootstrap par rapport à celui créé automatiquement lorsque vous le spécifiez est qu'il ne comporte aucune spécification File ou Block, aussi Bacula doit examiner toutes les données du volume pour trouver le fichier requis. Un fichier bootstrap complètement renseigné ressemblerait à ceci :
Volume="DLT-22Apr05" VolSessionId=11 VolSessionTime=1114075126 VolFile=118-118 VolBlock=0-4053 FileIndex=1-1
1 Job 0 Fileset ne restaure rien.
llist jobid=120
JobId: 120
Job: save.2005-12-05_18.27.33
Job.Name: save
PurgedFiles: 0
Type: B
Level: F
Job.ClientId: 1
Client.Name: Rufus
JobStatus: T
SchedTime: 2005-12-05 18:27:32
StartTime: 2005-12-05 18:27:35
EndTime: 2005-12-05 18:27:37
JobTDate: 1133803657
VolSessionId: 1
VolSessionTime: 1133803624
JobFiles: 236
JobErrors: 0
JobMissingFiles: 0
Job.PoolId: 4
Pool.Name: Full
Job.FileSetId: 1
FileSet.FileSet: BackupSet
Vous pouvez alors déterminer le(s) volume(s) avec :
sql select VolumeName from JobMedia,Media where JobId=1 and JobMedia.MediaId=Media.MediaId;Finalement, vous pouvez créer un fichier bootstrap iavec ces informations comme décrit plus haut.
A partir de la version 1.38.0, lorsque vous entrez un jobId après avoir fait le choix 3, Bacula v ous demande si vous voulez restaurer tous les fichiers du job, collecte pour vous les informations requises et écrit le fichier bootstrap.
./bls -j -V DLT-22Apr05 /dev/nst0pourrait produire ceci :
bls: butil.c:258 Using device: "/dev/nst0" for reading. 21-Jul 18:34 bls: Ready to read from volume "DLT-22Apr05" on device "DLTDrive" (/dev/nst0). Volume Record: File:blk=0:0 SessId=11 SessTime=1114075126 JobId=0 DataLen=164 ... Begin Job Session Record: File:blk=118:0 SessId=11 SessTime=1114075126 JobId=7510 Job=CatalogBackup.2005-04-22_01.10.0 Date=22-Apr-2005 10:21:00 Level=F Type=B End Job Session Record: File:blk=118:4053 SessId=11 SessTime=1114075126 JobId=7510 Date=22-Apr-2005 10:23:06 Level=F Type=B Files=1 Bytes=210,739,395 Errors=0 Status=T ... 21-Jul 18:34 bls: End of Volume at file 201 on device "DLTDrive" (/dev/nst0), Volume "DLT-22Apr05" 21-Jul 18:34 bls: End of all volumes.Bien sur, il y aura de nombreuses autres informations affichées, nous n'avons reproduit ici que les essentielles. D'après les informations sur le début (Begin job Session Record et sur la fin End Job Session Record du job, vous pouvez écrire un fichier bootstrap comme indiqué plus haut.
Pour rechercher le JobId d'une sauvegarde d'un fichier donné, choisissez l'option 2.
Vous pouvez aussi utiliser la commande query pour trouver l'information :
*query
Available queries:
1: List Job totals:
2: List up to 20 places where a File is saved regardless of the directory:
3: List where the most recent copies of a file are saved:
4: List last 20 Full Backups for a Client:
5: List all backups for a Client after a specified time
6: List all backups for a Client
7: List Volume Attributes for a selected Volume:
8: List Volumes used by selected JobId:
9: List Volumes to Restore All Files:
10: List Pool Attributes for a selected Pool:
11: List total files/bytes by Job:
12: List total files/bytes by Volume:
13: List Files for a selected JobId:
14: List Jobs stored in a selected MediaId:
15: List Jobs stored for a given Volume name:
Choose a query (1-15):
eric 2009-05-06