| {%- from "backupninja/map.jinja" import client, service_grains with context %} |
| {%- from "linux/map.jinja" import system with context %} |
| {%- from "linux/map.jinja" import network with context %} |
| # |
| # rsync handler file |
| # |
| |
| #scheduling |
| #by default it is |
| #when = everyday at 01 |
| {%- if client.scheduling is defined %} |
| {%- for time in client.scheduling.when %} |
| when = {{ time }} |
| {%- endfor %} |
| {%- endif %} |
| |
| |
| [general] |
| |
| # rsync log file |
| #log = /var/log/backup/rsync.log |
| |
| # partition device where the backup lives |
| # just use this option if your data is backed up in a separate partition and |
| # you want backupninja to fsck it; this option will just be used if fscheck |
| # (see below) is set to 'yes' |
| #partition = |
| |
| # set to 1 if fsck should run on partition after the backup is made |
| #fscheck = |
| |
| # set to 1 if partition is mounted read-only |
| #read_only = |
| |
| # backup partition mountpoint or backup main folder |
| # this doesn't need to be a real partition, but should be at least the |
| # main folder where the backup is being stored |
| mountpoint = /srv/backupninja |
| |
| # folder relative do mountpoint where the backup should be stored |
| backupdir = {{ system.name }}.{{ system.domain }} |
| |
| # temp folder |
| #tmp = /tmp |
| |
| # specify backup storage format: short, long or mirror (i.e, no rotations) |
| # |
| # In the short format, incremental backups are rotated every day the handler |
| # runs an by a finite number of times (backup.0, backup.1, backup.1, etc), so |
| # if you want to have incremental backups for longer periods (like months) you |
| # have to configure rotations for 30 or more using the "days" parameter at the |
| # [general] section in the handler config. |
| # |
| # The short format is better described here: |
| # http://www.mikerubel.org/computers/rsync_snapshots/#Incremental |
| # |
| # The long format is inspired by the maildir handler and allows keeping backups |
| # of longer periods (weeks and months) using less rotations as it stores |
| # the increments in folders like daily.1, weekly.1, monthly.1 and has three |
| # rotation parameters: |
| # |
| # keepdaily = number of daily backup increments |
| # keepweekly = number of weekly backup increments |
| # keepmonthly = number of monthly backup increments |
| # |
| format = short |
| |
| # for short storage format, specify the number of backup increments (min = 2, set to 1 or less to disable) |
| # |
| # Note that setting days = 0 is almost the same as using format = mirror except |
| # that with the days config your backup gets a .0 suffix at the destination |
| # folder, making it easier to turn it later to an incremental backup. |
| # |
| days = 7 |
| |
| # for long storage format, specify the number of daily backup increments |
| #keepdaily = 7 |
| |
| # for long storage format, specify the number of weekly backup increments |
| #keepweekly = 3 |
| |
| # for long storage format, specify the number of monthly backup increments |
| #keepmonthly = 1 |
| |
| # rsync command nice level |
| #nicelevel = 0 |
| |
| # set to "yes" if your system isnt handling timestamps correctly |
| #enable_mv_timestamp_bug = no |
| |
| # temp folder |
| #tmp = /tmp |
| |
| # set to "yes" if you want to use multiconnection ssh support |
| #multiconnection = no |
| |
| [source] |
| |
| # where the data to be backed up is (local or remote) |
| from = local |
| |
| # if remote source, specify the hostname or IP |
| #host = |
| |
| # remote port number (remote source only) |
| #port = 22 |
| |
| # remote user name (remote source only) |
| #user = |
| |
| # when "yes", test the connection for a remote source before backup |
| #testconnect = no |
| |
| {%- for backup_name, backup in service_grains.backupninja.backup.iteritems() %} |
| |
| {%- for fs_include in backup.get('fs_includes', []) %} |
| include = {{ fs_include }} |
| {%- endfor %} |
| |
| {%- for fs_exclude in backup.fs_excludes %} |
| exclude = {{ fs_exclude }} |
| {%- endfor %} |
| |
| {%- endfor %} |
| |
| # exlude some vserver from backup |
| # this is used only if vservers = yes on backupninja.conf |
| #exclude_vserver = excluded_vserver1 |
| #exclude_vserver = excluded_vserver2 |
| |
| # ssh command line (remote only) |
| #ssh = ssh |
| |
| # ssh or rsync (remote source only) |
| #protocol = ssh |
| |
| # rsync program |
| # it defaults to $RSYNC value from backupninja.conf |
| #rsync = $RSYNC |
| |
| # rsync command options |
| #rsync_options = "-av --delete --recursive" |
| |
| # when set to 1, use numeric ids instead of user/group mappings on rsync |
| #numericids = |
| |
| # if set to 1, compress data on rsync (remote source only) |
| #compress = 0 |
| |
| # set a bandwidth limit in KB/s (remote source only) |
| #bandwidthlimit = |
| |
| # remote rsync program (remote source only) |
| #remote_rsync = rsync |
| |
| # ssh key file (remote source only) |
| #id_file = /root/.ssh/id_dsa |
| |
| # set to "yes" to rsync use a batch file as source |
| #batch = no |
| |
| # folder where the batch file is located |
| #batchbase = |
| |
| # set yes if you want rsync to use a file list source |
| #filelist = no |
| |
| # folder where the file list is placed |
| #filelistbase = |
| |
| [dest] |
| |
| # backup destination type (local or remote) |
| dest = remote |
| |
| # when "yes", test the connection for a remote source before backup |
| testconnect = no |
| |
| # ssh command line (remote dest only) |
| #ssh = ssh |
| |
| # ssh or rsync (remote dest only) |
| #protocol = ssh |
| |
| # when set to 1, use numeric ids instead of user/group mappings on rsync |
| #numericids = |
| |
| # if set to 1, compress data on rsync (remote source only) |
| #compress = 0 |
| |
| # destination host name (remote destination only) |
| host = {{ client.target.host }} |
| |
| # remote port number (remote destination only) |
| {% if client.target.port is defined %} |
| port = {{ client.target.port }} |
| {% else %} |
| port = 22 |
| {% endif %} |
| |
| # remote user name (remote destination only) |
| user = {{ client.target.user }} |
| |
| # ssh key file (remote destination only) |
| id_file = /root/.ssh/id_rsa |
| |
| # set a bandwidth limit in KB/s (remote destination only) |
| #bandwidthlimit = |
| |
| # remote rsync program (remote dest only) |
| {%- if grains.os == 'Ubuntu' and grains.osrelease >= '14.04' %} |
| # remote_rsync = '{% for backup_name, backup in service_grains.backupninja.backup.iteritems() %}{% for fs_include in backup.get('fs_includes', []) %}mkdir -p /srv/backupninja/{{ network.fqdn }}{{ fs_include }};{% endfor %}{% endfor %} rsync' |
| {%- else %} |
| #remote_rsync = rsync |
| {%- endif %} |
| |
| # set to "yes" to rsync write a batch file from the changes |
| #batch = no |
| |
| # folder where the batch file should be written |
| #batchbase = /var/backups/rsync/batches |
| |
| # set to yes so rsync use the --fake-super flag (remote destination only) |
| #fakesuper = yes |
| |
| # This section is used to stop and start services that should be turned of |
| # during the backup procedure. |
| # |
| #[services] |
| # |
| # absolute path where scripts are located |
| #initscripts = /etc/init.d |
| # |
| # script name to be stoped at the begining of the backup and started at its end |
| #service = |
| |
| # You can also specify some system comands if you don't want the default system values |
| # by enabling the section below. |
| # |
| #[system] |
| # |
| # rm command |
| #rm = rm |
| # |
| # cp command |
| #cp = cp |
| # |
| # touch command |
| #touch = touch |
| # |
| # mv command |
| #mv = mv |
| # |
| # fsck command |
| #fsck = fsck |