Bien qu'il ne soit pas nécessaire de connaître le détail de toutes les directives possibles, une connaissance basique des ressources Bacula est indispensable. Chaque directive contenue dans une ressource (entre accollades) est composé d'un mot-clef suivi du signe "=", suivi d'une ou plusieurs valeurs. Le mot clef doit être l'un de ceux connus par Bacula, et peut comporter des caractères majuscules et minuscules ainsi que des espaces.
Chaque définition de ressource doit comporter la directive Name, et peut optionnellement comporter la directive Description. La directive Name est utilisée pour identifier de façon unique la ressource. La directive Description sera utilisé lors de l'affichage pour offrir une identification plus aisée de la ressource. Par exemple :
Director {
Name = "MyDir"
Description = "Main Bacula Director"
WorkingDirectory = "$HOME/bacula/bin/working"
}
Définit la ressource Director avec le nom "MyDir'' et le répertoire de travail $HOME/bacula/bin/working. En général, si vous voulez utiliser des espaces dans le nom à droite du signe "=", vous devez l'entourer de doubles quotes. Sinon, les quotes ne sont généralement pas requises car une fois définies, les chaînes quotées et non quotées sont toutes équivalentes.
Lors de la lecture d'un fichier de configuration, les lignes blanches sont ignorées, et tout ce qui suit le caractère dièse (#) jusqu'à la fin de la ligne est considéré comme commentaire. Un point virgule (;) indique la fin logique d'une ligne et tout ce qui suit le point virgule est considéré comme le paramètre suivant. Un paramètre qui apparaît seul sur une ligne ne nécessite pas de point virgule, vous ne verrez donc pas beaucoup de points virgule dans les exemples de ce manuel.
La casse (majuscules/minuscules) et les espaces sont totalement ignorées dans les mots-clef des directives des ressources (la partie à gauche du signe "='').
A l'intérieur des mots-clef (à gauche du signe "=''), les espaces ne sont pas significatives. Ainsi, les mots-clef : name, Name, et N a m e sont tous identiques.
Les espaces après le signe "='' et avant le premier caractère de la valeur son ignorées.
En général, les espaces à l'intérieur d'une valeur sont significatives (non ignorées), et si la valeur est un nom, vous devez l'encadrer de doubles quotes pour que l'espace soit acceptée. Les noms peuvent contenir jusqu'à 127 caractères. Actuellement, un nom peut contenir n'importe quel caractère ASCII. A l'intérieur d'une chaîne quotée, tout caractère précédé d'un backslash (\) est pris tel quel (utile pour insérer des backslashes et doubles quotes (")).
Veuillez cependant noter que les noms de ressource Bacula ainsi que certains autres noms (par exemple les noms de volumes) ne doivent contenir que des lettres (y compris accentuées ISO), nombres, et une poignée de caractères spéciaux (espace, souligné, ...). Tous les autres caratères et ponctuations sont prohibés.
Si vous souhaitez éclater votre fichier de configuration en fichiers plus petits, l'inclusion est possible avec la syntaxe @NomDeFichier où nom de fichier est le chemin absolu vers un le fichier à inclure. Toute donnée primitive peut être remplacée par une spécification @NomDeFichier. Par exemple
Director { Name=@xxx est valide et substituera le fichier xxx à @xxx, mais Director { Name@xxx = something n'est pas valide puisque @xxx apparaît au milieu d'un (???mot clef/directive/...???)
Lorsqu'il parcourt les enregistrements de ressource, Bacula classe les données selon les types enumérés ci-dessous. En première lecture, cette liste peut vous paraître accablante, mais en réalité, tout y est d'une logique élégante et directe.
Toute abbréviation des ces modificateurs est aussi autorisée (i.e. seconds peut être spécifié par sec ou s. Une spécification m sera interprétée en tant que mois.
La spécification d'une durée peut comporter autant de couples nombre/modificateur que vous le souhaitez. Par exemple:
1 week 2 days 3 hours 10 mins 1 month 2 days 30 sec
sont des spécifications valides (à partir de la version 1.35.1).
Note! Dans les versions de Bacula antérieures à 1.31, le modificateur était optionnel. Il est désormais obligatoire.