# DAR_MANAGER

NAME
SYNOPSIS
DESCRIPTION
COMMANDS
OPTIONS
EXIT CODES
SIGNALS
SEE ALSO
LIMITATIONS
KNOWN BUGS
AUTHOR

## NAME

dar_manager \- compiles several backup contents into a database to ease file restoration

## SYNOPSIS

dar_manager [-v] -C [<path>/]<database> [-z <algo>]

dar_manager [-v] -B [<path>/]<database> -A [<path>/]<basename> [-9 <min-digits>] [[<path>/]<archive_basename>]

dar_manager [-v] -B [<path>/]<database> -l

dar_manager [-v] -B [<path>/]<database> -D <number>[-<number>]

dar_manager [-v] -B [<path>/]<database> -b <number> <new_archive_basename>

dar_manager [-v] -B [<path>/]<database> -p <number> <path>

dar_manager [-v] -B [<path>/]<database> -o [list of options to pass to dar]

dar_manager [-v] -B [<path>/]<database> -d [<path to dar command>]

dar_manager [-v] -B [<path>/]<database> [-N] [-k] [-w <date>] [-e "<extra options to dar>"] -r [list of files to restore]

dar_manager [-v] -B [<path>/]<database> -u <number>

dar_manager [-v] -B [<path>/]<database> -f file [-x]

dar_manager [-v] -B [<path>/]<database> -s

dar_manager [-v] -B [<path>/]<database> -m <number> <number>

dar_manager [-v] -B [<path>/]<database> -c

dar_manager [-v] -B [<path>/]<database> -i

dar_manager [-v] -B [<path>/]<database> -@ { <filename> | "-" }

dar_manager -h

dar_manager -V

## DESCRIPTION

dar_manager is part of the Disk Archive suite. Its purpose is to build and manage a database holding the content information of many full, differential and incremental backups. A database can then be provided to dar (see its -aefd option) in place of a single backup to restore a single file, a directory tree, or a whole filesystem, in its latest state or in the state it has before a given date (see dar’s -af with -A option). This way you do not have to bother where to find the backup which contains each particular file’s data under restoration, in particular when using a mix of full, differential and incremental backup, and even worse, when also using binary delta. You do not have neither to bother about files that were not present (deleted or did not yet existed) at the target date.

## COMMANDS

-C, --create [<path>/]<database>

creates an empty database that will collect information about several archives. The <database> is a filename that is required for -B option. To destroy a <database> just remove the file.

-B, --base [<path>/]<database>

specify the database to read or modify. The <database> file must exist, and have a database structure (see -C option).

| -i, --interactive |  | use a keyboard interactive text menu to do operations on the given database. So you may avoid reading the other options described in this manual page, if you wish, and just use the interactive option. You will however always have to create an empty database (-C option) and restore files manually (-r option).

-A, --add [<path>/]<basename> [ [<path>/]<archive_basename>]

add an archive to the database. An isolated catalogue can also be used only if it has been produced by dar version 1.2.0 or above. Why ? Because, an isolated catalogue produced by older version will always tell that no files are saved in the archive of reference, in that case the solution is to provide the archive itself as argument. An optional second argument is the basename of the archive if it is different from the first argument (need for extraction of files). For example you could have an isolated catalogue in first argument and the basename of the original archive (where is stored the data) as second argument. By default,

| -l, --list |  | displays the information about the archives compiled in the database. In particular, a number is given to each archive, which is required to some other option to design a particular archive within the database. Nothing avoids you to feed the database with several archive of the same basename ! You will just have to guess which one is asked under this name. :-)

-D, --delete <number>[-<number>]

removes an archive (or a range of archive) from the database. The number of the archive (or the min and max number or the archive range) is correspond to those given by the -l option. Note that all archive number greater than the one(s) to be delete will be decremented to keep continuous numbering of the archive inside the database. If a single number is given (not a range), it may be also a negative number, by which it means counting from the end. For example, -1 means the last archive of the base, -2 the penultimate, etc.

-b, --basename <number> <new_archive_basename>

this option allows you to rename the archive basename (used when restoring files from it). Here too, the number may be also a negative number.

-p, --path <number> <path>

this option allows you to change the location of a given archive (used when restoring files from it). Here too, a negative number is allowed.

-o, --options [list of option to pass to dar]

Specify the option to use when calling dar. Each call erases the previous setting. Possible dar options are all the available ones except "-x" and simple arguments (the [list of path]) which will be added by dar_manager itself.

| -d, --dar [<path>] |  | Set the path to dar. If no argument is given, dar is expected to be located in the PATH

-r, --restore [list of files or directories to restore]

[This option is deprecated in favor of dar’s -aefd option, which let dar directly read a dar_manager database to restore data more efficiently]

dar_manager will restore all (an only) the given files or directories, in their latest recorded status, or before the date given thanks to the -w option. If a directory is specified to be restored, all subfiles and subdirectories are restored recursively in it. You can filter out some files from this recursion thanks to dar usual filtering option (see dar man page) which you can provide beside -r option thanks to the -e option (see below). When a file is stored as having been removed at the date requested for the restoration, it is simply not restored. Thus, if you restore in an empty directory you will get all the expected status of files and directory at the specified time (existing file will have their content of that date, deleted or non yet existing file will not be present and file filtered out from the backup will neither be present). Thanks to that, you can also restore over an existing filesystem: dar will then warn you before overwriting files (see -w and -n options for dar) but will still not remove files that were recorded as removed if it was present before the restoration takes place, nor it will touch existing files that are outside the backup because they have been fitered out or because they were never part of any backup. Note that files listed after -r option, must never have an absolute path. They will be restored under the directory specified by dar’s -R option (passed to dar using -o or -e options), or by default, under the current directory.

-u, --used <number>

list the files that the given archive owns as last version available. Thus when no file is listed, the given archive is no more useful in database, and can be removed safely (-D option). If <number> is zero, all available file are listed, the status provided for each file present in the database is the most recent status. A negative number is allowed for this option (see -D option for details).

| -f, --file <file> |  | displays in which archive the given file is saved, and what are the modification date (mtime) and change date (ctime).
| -x |  | with -f option, display dates with subsecond information
| -s, --stats |  | show the number of most recent files by archive. This helps to determine which archive can be safely removed from the database.

-m, --move <number> <number>

changes the order of archives in the database. The first number is the number of the archive to move, while the second is the place where it must be shifted to.

Archive order is important: An old archive must have a smaller index than a recent archive. If you add archive to a database in the order they have been created all should be fine. Else if a file has a more recent version in an archive which index is smaller, a warning will be issued (unless -ai option is used). This can occur if by mistake you added an archive to the database in the wrong order (old archive added after a recent one), in that case simply using the -m option will let you fix this mistake. If instead the problem is relative to a single file (or a small set of file), you should wonder why this file has its modification date altered in a way that it pretends to be older than its really is. Checking for the signs of a rootkit may be a good idea.

| -c, --check |  | check the database consistency, in particular the date ordering is verified and warning are issued for each file having more recent version located in an archive with a smaller index inside the database. -ai option makes -c option useless.

-@, --batch <filename>

allows you to do several operations on a given database. All operations are defined in the provided <filename> and refer to the same database as defined by the -B switch on command line. This batch file, must thus not contain neither -B, -C, -i or -ai option (-ai are global to the batch operation). The batch file expected layout is one command per line, thus several arguments (like -l -v for example) may take place on a given line of the file (-v can be found both on command line for verbose output about the batch operation steps, as well as inside the batch file for verbose output of a particular batched command). Arguments are separated by spaces or tabs, other characters are passed as-is. In consequence, you should only need to use quotes (using " or ’) if you intend to use an argument containing space. Last, comments may be placed on any line beginning by a hash character (#).

| -h, --help |  | display help usage |
| -V, --version |  | display software version |

## OPTIONS

-9, --min-digits <num>

the slice number zeroed padding to use to get the slices filename (for more details see dar man page at this same option) dar_manager will look for an archive of reference in the command line used to create each archive, but in some cases, it may be necessary to specify the archive name (for example if you’ve changed its name).

| -w, --when <date> |

[When using dar in place of dar_manager to restore from a dar_manager database, the behavior of this -w option is achieved with dar thanks to the "-af -A <date>" syntax, where <date> has the same structure as what is described here]

alters the -r option behavior: still restores the files in the most recent version available but only before the given date (versions of more recent dates are ignored). The <date> must respect the following format [ [ [year/]month/]day-]hour:minute[:second]. For example "22:10" for 10 PM past 10 or the current day, "7-22:10" for 10 PM past 10 the 7th of the current month, "3/07-22:10" for the 7th of march at 22:10 of the current year, "2002/03/31-14:00:00" the date of the first dar’s release ;-). The given date must be in the past, of course, and is compared to the status of the saved files and not to the date at which archives have been done. Thus if a file has been changed long ago but saved in a recent (full) archive, it will be elected for restoration even for dates older than the creation of the archive. In the other way, a file saved long time ago with a mtime that was set to a date in the future will not be elected for restoration when giving the date at which was done the archive. Same thing with for metadata: if the ctime is in the future and only a metadata change has been recorded since an very old state, this future metadata change (permission, ownership...) will not applied to the restored file, though the data (and previous metadata state) will be restored if it is older than the target date.

Note that the provided date is relative to the system timezone which is overriden if the TZ environement variable is set (see tzselect(1) for more details)

-e, --extra <options>

pass some more options to dar. While the -o options takes all that follows on the command line as argument to pass to dar and write these in the database, the -e option does not alter the database and has only one argument. In other words, if you need to pass several options to dar through the use of the -e option, you need to use quotes (simple quotes ’ or double quotes ") to enclose these options. Example:

dar_manager -B database.dmd -e "-w -v -p -b -r -H 1" -r some/files

while using -o option you must not use quotes:

dar_manager -B database.dmd -o -w -v -p -b -r -H 1

-N, --ignore-options-in-base

Do not use the options stored in database when calling dar for restoration. This option is only useful while restoring files from dar_manager, either directly (-r option) or using a batch file (-@ option).

-k, --ignore-when-removed

By default, dar_manager does not ask dar to restore file that have been removed at the requested date (or in the latest state available). This is useful for example to restore a directory in the state it has at a given date (only files that existed at that time are restored). However when you want to restore a file that has been destroyed by accident, you need to use -k option so you don’t have to determine at which date that file existed to be be able to ask dar_manager to restore that file in the state it had before that date. In other words, -k option gives a behavior of dar_manager backward compatible with dar_manager released beside version 2.3.x of dar.

-ai, --alter=ignore-order

avoid dar_manager to issue a warning for each file not following a chronological order of modification date when the archive number in the database is growing.

-z, --compression <algo>[:<level>]

Available creating or modifying a database content (-C, -A, -D, -m, -i, -L options), this option let you set the compression algorithm and eventually the compression level to use when the database is wrote to file. By default gzip:9 is use, but you can use "none" for no compression, "bzip2", "xz" and "lzo" and other compression algorithms (see -z option in dar’s man page for an up to date list of available algorithms). Note: this option is only needed if you want to *change* the compression algorithm or level. Once defined, either at database creation time using -C option, or modified afterward, the compression scheme is stored in the database header and used for writing down database back to file.

| -Q |  | Do not display any message on stderr when not launched from a terminal (for example when launched from an at job or crontab). Remains that any question to the user will be assumed a ’no’ answer, which most of the time will abort the program.
| -v, --verbose |  | displays additional information about what it is doing.

## EXIT CODES

dar_manager exits with the following code:

| 0 |  | Operation successful. |
| 1 |  | see dar manual page for signification |
| 2 |  | see dar manual page for signification |
| 3 |  | see dar manual page for signification |
| 5 |  | see dar manual page for signification |
| 7 |  | see dar manual page for signification |
| 8 |  | see dar manual page for signification |

11 and above

dar
called from dar_manager has exited with non zero status. Subtract 10 to this exit code to get dar’s exit code.

## SIGNALS

dar_manager acts like dar (see dar man page for list of signals), upon certain signal reception dar aborts cleanly

## SEE ALSO

dar(1), dar_xform(1), dar_slave(1), dar_cp(1), dar_split(1)

## LIMITATIONS

at most 65534 archives can be compiled in a given database, which should be enough for most users. Dar_manager does not support encrypted archives for now and archive cannot neither be encrypted. See the FAQ for a workaround.

## KNOWN BUGS

https://github.com/Edrusb/DAR/issues

## AUTHOR

http://dar.linux.free.fr/
Denis Corbin
France
Europe