config.example.yaml

Wed, 07 Feb 2018 20:39:01 +0000

author
Tuomo Valkonen <tuomov@iki.fi>
date
Wed, 07 Feb 2018 20:39:01 +0000
changeset 113
6993964140bd
parent 97
96d5adbe0205
permissions
-rw-r--r--

Time snapshot fixes.
Python's default arguments are purely idiotic (aka. pythonic): generated
only once. This makes sense in a purely functional language, which Python
lightyears away from, but severely limits their usefulness in an imperative
language. Decorators also seem clumsy for this, as one would have to tell
the number of positional arguments for things to work nice, being able to
pass the snapshot both positionally and as keyword. No luck.
So have to do things the old-fashioned hard way.

#
# Borgend example configuration file
#

# General parameters for borg
borg:
  executable: /usr/local/bin/borg
  common_parameters:
  create_parameters:
    - exclude-from: $HOME/lib/borg-exclude-patterns.txt
  prune_parameters:
    # Set borg pruning parameters. The pruning interval is configured
    # in each separate backup. NOTE: Pruning parameters can also be
    # configured separately for each backup.
    #
    # Keep a daily archive for the last week
    - keep-daily: 7
    # Keep a weely archive for the last year
    - keep-weekly: 52
    # Keep a montly archive forever
    - keep-monthly: -1
    # Set to true to enable a dry-run
    - dry-run: False

# Repositories: configure here locations, passphrases,
# and general access parameters
repositories:
  - name: myserver
    location: ssh://myserver.invalid/~/storage/borg
    keychain_account: borg-backup@mylaptop
    # Borg parameters
    common_parameters:
      # Borg is installed on remote host at ~/bin, which might not be on path
      - remote-path: ~/bin/borg
    create_parameters:
      - compression: lzma
      - checkpoint-interval: 600

  - name: backup1
    location: /Volumes/backup1/borg
    keychain_account: borg-backup@mylaptop

# Backups: configure here which files should be backed up, how frequently, and to
# which repositires.
backups:
  # 1. Most files in $HOME to ssh://myserver.invalid
  - name: Home to 'myserver'
    # Scheduling mode: dreamtime/realtime/manual
    # Dreamtime scheduling discounts system sleep periods.
    scheduling: dreamtime
    # Backup every 24 hours
    backup_interval: 86400
    # Retry every 15 minutes if unable to connect / unfinished backup
    retry_interval: 900
    # Prune interval: once every two weeks
    prune_interval: 1209600
    # Repository and archive configuration
    repository: myserver
    archive_prefix: 'all@mylaptop-'
    archive_template: '{now:%Y-%m-%d_%H:%M:%S}'
    # Files to include
    paths:
      - $HOME
    create_parameters:
      - pattern: "- $HOME/Downloads/"
      - pattern: "- $HOME/Library/Mail/V*/MailData/"
      - pattern: "+ $HOME/Library/Mail/"
      - pattern: "+ $HOME/Library/Mobile Documents/"
      - pattern: "- $HOME/Library/"
      - pattern: "- $HOME/.config/borg/security/"

  # 2. A subset of files $HOME more frequently to ssh://myserver.invalid
  - name: Work to 'myserver'
    # Scheduling mode: dreamtime/realtime/manual
    scheduling: dreamtime
    # Backup every 3 hours
    backup_interval: 10800
    # Retry every 15 minutes if unable to connect / unfinished backup
    retry_interval: 900
    # Prune interval: once every two weeks
    prune_interval: 1209600
    # Repository and archive configuration
    repository: myserver
    archive_prefix: 'work@mylaptop-'
    archive_template: '{now:%Y-%m-%d_%H:%M:%S}'
    paths:
      - $HOME/work

  # 3. Manual backup to external hard drive
  - name: Home to 'backup1'
   # Manual backup
   scheduling: manual
   backup_interval: 0
   retry_interval: 0
   prune_interval: 0
   repository: backup1
   archive_prefix: 'mylaptop-'
   archive_template: '{now:%Y-%m-%d_%H:%M:%S}'
   paths:
     - $HOME
   create_parameters:
     - pattern: "- $HOME/Downloads/"
     - pattern: "- $HOME/Library/Mail/V*/MailData/"
     - pattern: "+ $HOME/Library/Mail/"
     - pattern: "+ $HOME/Library/Mobile Documents/"
     - pattern: "- $HOME/Library/"
     - pattern: "- $HOME/.config/borg/security/"

mercurial