Back to README
| Command | Description |
|---|---|
| dar-backup | Perform full, differential, or incremental backups with verification and restore testing |
| manager | Maintain and query catalog databases for archives |
| cleanup | Remove outdated DIFF/INCR archives (and optionally FULLs) |
| clean-log | Clean up excessive log output from dar command logs |
| dar-backup-systemd | Generate (and optionally install) systemd timers and services for automated backups |
| installer | Set up directories and optionally create catalog databases according to a config file |
| demo | Set up required directories and config files for a demo |
| dar-backup-dashboard | Start Datasette and open the metrics dashboard in the browser |
This script does backups including par2 redundancy, validation and restoring.
Available options:
-F, --full-backup Perform a full backup.
-D, --differential-backup Perform a differential backup.
-I, --incremental-backup Perform an incremental backup.
-d, --backup-definition <name> Specify the backup definition file.
--alternate-reference-archive <file> Use a different archive for DIFF/INCR backups.
-c, --config-file <path> Specify the path to the configuration file.
--darrc <path> Specify an optional path to .darrc.
--examples Show examples of using dar-backup.py.
-l, --list List available backups.
--list-contents <archive> List the contents of a specified archive.
--list-definitions List backup definitions from BACKUP.D_DIR.
--selection <params> Define file selection for listing/restoring.
-r, --restore <archive> Restore archive.
--restore-dir Directory on which to restore
--preserve-ownership Force uid/gid restoration for this run (overrides config; root only; mutually exclusive with --ignore-ownership).
--ignore-ownership Force uid/gid to be ignored for this run (overrides RESTORE_OWNERSHIP = yes in config; mutually exclusive with --preserve-ownership).
--no-deleted Do not process deletion records from DIFF/INCR archives (passes --deleted=ignore to dar). Useful when restoring a DIFF or INCR archive directly to an empty directory without first restoring the FULL.
--verbose Enable verbose output.
--suppress-dar-msg Filter out this from the darrc: "-vt", "-vs", "-vd", "-vf", "-va"
--log-level <level> `debug` or `trace`, default is `info`.
--log-stdout Also print log messages to stdout.
--do-not-compare Do not compare restores to file system.
--allow-unsafe-definition-names Disable backup definition name validation (allows underscores or other characters).
--preflight-check Run preflight checks and exit (runs automatically; this flag just exits after checks).
--examples Show examples of using dar-backup.
--readme Print README.md and exit
--readme-pretty Print README.md with Markdown styling and exit
--changelog Print Changelog and exit
--changelog-pretty Print Changelog with Markdown styling and exit
--doc <name> Print a documentation file by name and exit (tab completion lists available docs)
--doc-pretty <name> Print a documentation file with Markdown styling and exit
-v, --version Show version and license information.- 0: Success.
- 1: Error (backup/restore/preflight failure).
- includes an invalid backup-definition name (see naming rules) — as of v2-1.1.10 this is
rc=1whether the invalid name was given explicitly via-dor found while scanningBACKUP.D_DIRfor an all-definitions run; previously the latter case was only a warning (rc=2)
- includes an invalid backup-definition name (see naming rules) — as of v2-1.1.10 this is
- 2: Warning (restore test failed or backup already exists and is skipped).
- 127: Typically an error during startup, file or config value missing
- if the
dar -ttest fails, exit code 1 is emitted - restore tests could fail if the source file has changed after the backup
- if the
| Env var | Value | Description |
|---|---|---|
| DAR_BACKUP_CONFIG_FILE | Full path to config file | Overrides built-in default, overridden by --config-file |
| DAR_BACKUP_DISCORD_WEBHOOK_URL | https://discord.com/api/webhooks/\<userID>/<webhook UUID> | The full url |
| DAR_BACKUP_COMMAND_TIMEOUT_SECS | -1 or > 0 | Overrides config COMMAND_TIMEOUT_SECS. Use -1 to disable timeouts. |
This script manages dar databases and catalogs.
Available options:
-c, --config-file <path> Path to dar-backup.conf.
--create-db Create missing databases for all backup definitions.
--alternate-archive-dir <path> Use this directory instead of BACKUP_DIR in the config file.
--add-dir <path> Add all archive catalogs in this directory to databases.
-d, --backup-def <name> Restrict operations to this backup definition.
--add-specific-archive <archive> Add a specific archive to the catalog database.
--remove-specific-archive <archive> Remove a specific archive from the catalog database.
-l, --list-catalogs List catalogs in databases for all backup definitions.
--list-archive-contents <archive> List the contents of an archive's catalog by archive name.
--find-file <file> Search catalogs for a specific file.
--restore-path <path> [<path> ...] Restore specific path(s) (Point-in-Time Recovery).
--when <timestamp> Date/time for restoration (used with --restore-path).
--target <path> Target directory for restoration (default: current dir).
--preserve-ownership Force uid/gid restoration for this run (overrides config; root only; mutually exclusive with --ignore-ownership).
--ignore-ownership Force uid/gid to be ignored for this run (overrides RESTORE_OWNERSHIP = yes in config; mutually exclusive with --preserve-ownership).
--no-deleted Do not process deletion records from DIFF/INCR archives (passes --deleted=ignore to dar). Useful when restoring a DIFF or INCR archive directly to an empty directory.
--pitr-report Report PITR archive chain for --restore-path/--when without restoring.
--pitr-report-first Run PITR chain report before restore and abort if missing archives.
--relocate-archive-path <old> <new> Rewrite archive path prefix in the catalog DB (requires --backup-def).
--relocate-archive-path-dry-run Show archive path changes without applying them (use with --relocate-archive-path).
--verbose Enable verbose output.
--log-level <level> Set log level (`debug` or `trace`, default is `info`).
--log-stdout Also print log messages to stdout.| Env var | Value | Description |
|---|---|---|
| DAR_BACKUP_CONFIG_FILE | path to the config file | Default is $HOME/.config/dar-backup/dar-backup.conf |
| DAR_BACKUP_COMMAND_TIMEOUT_SECS | -1 or > 0 | Overrides config COMMAND_TIMEOUT_SECS. Use -1 to disable timeouts. |
This script removes old backups and par2 files according to [AGE] settings in config file.
Catalogs in catalog databases are also removed.
Supported options:
-d, --backup-definition Backup definition to cleanup.
-c, --config-file Path to 'dar-backup.conf'
-v, --version Show version & license information.
--alternate-archive-dir Clean up in this directory instead of the default one.
--cleanup-specific-archives "<archive>, <>, ..." Comma separated list of archives to cleanup.
-l, --list List available archives (filter using the -d option).
--dry-run Show what would be deleted without removing files.
--verbose Print various status messages to screen.
--log-level <level> `debug` or `trace`, default is `info`", default="info".
--log-stdout Print log messages to stdout.
--test-mode This is used when running pytest test cases| Env var | Value | Description |
|---|---|---|
| DAR_BACKUP_CONFIG_FILE | path to the config file | Default is $HOME/.config/dar-backup/dar-backup.conf |
| DAR_BACKUP_COMMAND_TIMEOUT_SECS | -1 or > 0 | Overrides config COMMAND_TIMEOUT_SECS. Use -1 to disable timeouts. |
This script removes excessive logging output from dar logs, improving readability and efficiency. Available options:
-f, --file <path> Specify the log file(s) to be cleaned.
-c, --config-file <path> Path to dar-backup.conf.
--dry-run Show which lines would be removed without modifying the file.
-v, --version Display version and licensing information.
-h, --help Displays usage infoGenerates and optionally install systemd user service units and timers.
-h, --help Show this help message and exit
--venv VENV Path to the Python venv with dar-backup
--dar-path DAR_PATH Optional path to dar binary's directory
--install Install the units to ~/.config/systemd/userSets up dar-backup according to provided config file.
The installer creates the necessary backup catalog databases if --create-db is given.
--config Path to a config file. The configured directories will be created.
--create-db Create backup catalog databases. Use this option with `--config`.
--install-autocompletion Add bash or zsh auto completion - idempotent.
--remove-autocompletion Remove the auto completion from bash or zsh.
-v, --version Display version and licensing information.
-h, --help Displays usage info.Sets up dar-backup in a demo configuration.
It is non-destructive and stops if directories are already in place.
Create directories:
- ~/.config/dar-backup/
- ~/.config/dar-backup/backup.d/
- ~/dar-backup/
- ~/dar-backup/backups/
- ~/dar-backup/restore/
Sets up demo config files:
- ~/.config/dar-backup/dar-backup.conf
- ~/.config/dar-backup/backup.d/demo
-i, --install Sets up `dar-backup`.
--root-dir Specify the root directory for the backup.
--dir-to-backup Directory to backup, relative to the root directory.
--backup-dir Directory where backups and redundancy files are put.
--override By default, the script will not overwrite existing files or directories.
Use this option to override this behavior.
--generate Generate config files and put them in /tmp/ for inspection
without writing to $HOME.
-v, --version Display version and licensing information.
-h, --help Displays usage infoStart Datasette and open the metrics dashboard in the browser.
--db PATH Path to the metrics database.
Overrides METRICS_DB_PATH from the config file.
-c / --config-file PATH
Path to dar-backup.conf.
Default: $DAR_BACKUP_CONFIG_FILE or
~/.config/dar-backup/dar-backup.conf
--port PORT Preferred Datasette port (default: 8001).
A nearby free port is used automatically if taken.
--no-browser Start Datasette but do not open a browser window.
Prints the dashboard URL to stdout instead.