Configure Brebis
================

You need two files in order to use Brebis, a file offering the configuration of the archive and another file giving the detail of what's inside the archive, let's call it the list of files. But don't worry, the option -G allows to generate both files from a given archive. The next sections offer the details of what parameter these files contain.

Configuration of the archive
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The first one contains general information about the backup checking session. It is mandatory your configuration file uses the .conf extension. Here is an example with all the currently supported parameters:::

    [main]
    name=mybackup-checking-session
    type=archive
    path=tests/expected_mode/foos.tar.gz
    files_list=tests/expected_mode/files-list
    delimiter=|
    sha512=87d3325d3bb844734c1b011fb0f12a3ae47676153a8b05102a5e1b5347a86096d85b1b239752c3fdc10a8a2226928b64b5f31d8fd09f3e43a8eee3a4228f38b1

* **[main]** is mandatory.
* **name** is the name of your backup checking session. If you have several backup checking sessions, they MUST use a different name.
* **type** is the type of your backup. Currently you only have archive (tar, tar.gz, tar.bz2, zip files) and tree for a tree of directories and files.
* **path** is the path to the archive or the top directory of your files tree. Relative or absolute paths are accepted.
* **files_list** is the path to the file containing the information about the archive, the tree or the files inside your backups. Relative or absolute paths are accepted.
* **delimiter** (optional field) is the string to use in the list of files to mark the end of the key and the beginning of the value. Default is | (pipe).
* **sha512** (optional field) provides the sha512 hash sum of the list of files, in order to check if this file is the expected one.

Understanding the parameters of the list of files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The second file you need is the list containing the information about the archive, the tree or the files inside your backups. Here is an example with the full list of the parameters available for now:::

    [archive]
    size| <5m
    mode| 755
    uid| 5000
    gid| 5001
    sha1| e0f58dcc57caad2182f701eb63f0c81f347d3fe5
    
    [files]
    foos/foo|
    foos/foo1| >105k type|f mode|755 uid|5022 gid|5023 unexpected md5|3718422a0bf93f7fc46cff6b5e660ff8

* **[archive]** section hosts the parameter for the archive itself. This section is not mandatory if you do not need it.
* **size** defines what the archive size should be. You can specify <,> or =. Default value is expressed in bytes, also available are (k)ilo, (m)ega, (g)iga, (p)eta,(e)xa, (z)etta and (y)ottabyte.
* **mode** is for the expected mode of the archive.
* **uid** is for the expected uid of the archive.
* **gid** is for the expected gid of the archive.
* **sha1** is for the expected md5 hash sum of the archive. Also available is sha1, sha224, sha256, sha384, sha512.

* **[files]** section stands for the files inside the archive or the tree of directories and files. This section is not mandatory if you do not need it.
* **foos/foo|** means this file has to exist in the backup, whatever it is.
* **foos/foo1| >105k** defines that the file size of foos/foo1 in the archive should be strictly bigger than 105 kilobytes. You can specify <,> or =. Default value is expressed in bytes, also available are (k)ilo, (m)ega, (g)iga, (p)eta,(e)xa, (z)etta and (y)ottabyte.
* **foos/foo1| type|f** means the file foos/foo1 is expected to be of type f. Several types are allowed : f for files, d for directory, s for symbolic link, k for socket, b for block, c for character.
* **foos/foo1| mode|755** means the file foos/foo1 is expected to have the mode 755 (meaning read, write and execute for the owner, read and execute for the group owner, read and execute for the others). All values respecting this octal representation (including values with setuid bit on four digits) is allowed.
* **foos/foo1| uid|5022** means the file foos/foo1 is expected to have a uid of 5022.
* **foos/foo1| gid|5023** means the file foos/foo1 is expected to have a gid of 5023.
* **foo/bar| unexpected** means that foo/bar is unexpected in this archive of tree of directories and files and that an alert should be launched about it.
* **foos/foo1| md5|hashsum** means the file foos/foo1 is expected to have a md5 hash sum of "hashsum". Also available is sha1, sha224, sha256, sha384, sha512.
