# Where to look for files to backup, and where to store those backups. See # https://borgbackup.readthedocs.io/en/stable/quickstart.html and # https://borgbackup.readthedocs.io/en/stable/usage.html#borg-create for details. location: # List of source directories to backup (required). Globs and tildes are expanded. source_directories: - /home - /etc - /var/log/syslog* # Stay in same file system (do not cross mount points). one_file_system: true # Mode in which to operate the files cache. See # https://borgbackup.readthedocs.io/en/stable/usage/create.html#description for # details. files_cache: ctime,size,inode # Alternate Borg local executable. Defaults to "borg". local_path: borg1 # Alternate Borg remote executable. Defaults to "borg". remote_path: borg1 # Paths to local or remote repositories (required). Tildes are expanded. Multiple # repositories are backed up to in sequence. See ssh_command for SSH options like # identity file or port. repositories: - user@backupserver:sourcehostname.borg # Any paths matching these patterns are included/excluded from backups. Globs are # expanded. (Tildes are not.) Note that Borg considers this option experimental. # See the output of "borg help patterns" for more details. Quote any value if it # contains leading punctuation, so it parses correctly. patterns: - R / - '- /home/*/.cache' - + /home/susan - '- /home/*' # Read include/exclude patterns from one or more separate named files, one pattern # per line. Note that Borg considers this option experimental. See the output of # "borg help patterns" for more details. patterns_from: - /etc/borgmatic/patterns # Any paths matching these patterns are excluded from backups. Globs and tildes # are expanded. See the output of "borg help patterns" for more details. exclude_patterns: - '*.pyc' - ~/*/.cache - /etc/ssl # Read exclude patterns from one or more separate named files, one pattern per # line. See the output of "borg help patterns" for more details. exclude_from: - /etc/borgmatic/excludes # Exclude directories that contain a CACHEDIR.TAG file. See # http://www.brynosaurus.com/cachedir/spec.html for details. exclude_caches: true # Exclude directories that contain a file with the given filename. exclude_if_present: .nobackup # Repository storage options. See # https://borgbackup.readthedocs.io/en/stable/usage.html#borg-create and # https://borgbackup.readthedocs.io/en/stable/usage/general.html#environment-variables for # details. storage: # The standard output of this command is used to unlock the encryption key. Only # use on repositories that were initialized with passcommand/repokey encryption. # Note that if both encryption_passcommand and encryption_passphrase are set, # then encryption_passphrase takes precedence. encryption_passcommand: secret-tool lookup borg-repository repo-name # Passphrase to unlock the encryption key with. Only use on repositories that were # initialized with passphrase/repokey encryption. Quote the value if it contains # punctuation, so it parses correctly. And backslash any quote or backslash # literals as well. encryption_passphrase: "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" # Type of compression to use when creating archives. See # https://borgbackup.readthedocs.org/en/stable/usage.html#borg-create for details. # Defaults to no compression. compression: lz4 # Remote network upload rate limit in kiBytes/second. remote_rate_limit: 100 # Command to use instead of just "ssh". This can be used to specify ssh options. ssh_command: ssh -i /path/to/private/key # Umask to be used for borg create. umask: 0077 # Maximum seconds to wait for acquiring a repository/cache lock. lock_wait: 5 # Name of the archive. Borg placeholders can be used. See the output of # "borg help placeholders" for details. Default is # "{hostname}-{now:%Y-%m-%dT%H:%M:%S.%f}". If you specify this option, you must # also specify a prefix in the retention section to avoid accidental pruning of # archives with a different archive name format. archive_name_format: '{hostname}-documents-{now}' # Retention policy for how many backups to keep in each category. See # https://borgbackup.readthedocs.org/en/stable/usage.html#borg-prune for details. # At least one of the "keep" options is required for pruning to work. retention: # Keep all archives within this time interval. keep_within: 3H # Number of minutely archives to keep. keep_minutely: 60 # Number of hourly archives to keep. keep_hourly: 24 # Number of daily archives to keep. keep_daily: 7 # Number of weekly archives to keep. keep_weekly: 4 # Number of monthly archives to keep. keep_monthly: 6 # Number of yearly archives to keep. keep_yearly: 1 # When pruning, only consider archive names starting with this prefix. # Borg placeholders can be used. See the output of "borg help placeholders" for # details. Default is "{hostname}-". prefix: sourcehostname # Consistency checks to run after backups. See # https://borgbackup.readthedocs.org/en/stable/usage.html#borg-check and # https://borgbackup.readthedocs.org/en/stable/usage.html#borg-extract for details. consistency: # List of one or more consistency checks to run: "repository", "archives", and/or # "extract". Defaults to "repository" and "archives". Set to "disabled" to disable # all consistency checks. "repository" checks the consistency of the repository, # "archive" checks all of the archives, and "extract" does an extraction dry-run # of just the most recent archive. checks: - repository - archives # Restrict the number of checked archives to the last n. Applies only to the "archives" check. check_last: 3 # Shell commands or scripts to execute before and after a backup or if an error has occurred. # IMPORTANT: All provided commands and scripts are executed with user permissions of borgmatic. # Do not forget to set secure permissions on this file as well as on any script listed (chmod 0700) to # prevent potential shell injection or privilege escalation. hooks: # List of one or more shell commands or scripts to execute before creating a backup. before_backup: - echo "`date` - Starting a backup job." # List of one or more shell commands or scripts to execute after creating a backup. after_backup: - echo "`date` - Backup created." # List of one or more shell commands or scripts to execute in case an exception has occurred. on_error: - echo "`date` - Error while creating a backup."