# Number of DAYS to keep the daily backups keep-daily 7 # Number of DAYS to keep the weekly backups -- note this is NOT the # number of weeks to keep them keep-weekly 42 # The three letter abbreviation of the day to consider a weekly backup weekly-backup-day Sun default-protocol rsh # Show a status line when a backup starts, set to yes to enable show-start-line no # The path to the find command on remote the remote hosts # (used for globbing paths) find-path /usr/bin/find # The path to rsync on remote the remote hosts rsync-path /usr/local/bin/rsync # Whether rsync should use compression or not (valid: 'yes' or 'no') compression yes # Each protocol must be defined with the path to it's binary #protcol-path name=/path/to/program protocol-path rsh=/usr/bin/rsh protocol-path ssh=/usr/bin/ssh #debug yes # comment out this line to disable debugging # # Sample host entry: # # host hostname.domain { # # # The thread-id assigns this host to a specific thread. Each thread runs # # in parallel, but each host in the thread is backed up serially. This # # allows long running rsync's to be separate from other hosts and allows # # utilizing the bandwidth capabilities for separate WAN links at the same # # time. # thread-id any-thread-id # # # The protocol statement defines the protocol to use for this host The # # protocol must be defined using the protocol-path global statement. If # # protocol is omitted, the global default-protocol option is used. # protocol rsh # # # The path statement defines a path to be backed up from the host # path /path/to/dir # # # Using a '*' at the end of the path will have the backup program used # # the defined (or default) protocol to connect to the host and get a list # # of directories based on the glob. This is useful for directories that # # contain very large numbers of files, which causes rsync to use more # # system resources. # # The command used to glob is: # # find /some/other/path/* -type d -maxdepth 0 # # # # Note that this will not include hidden directories or any files in the # # specified path # path /some/other/path/* # # # This format for the path statement allows you to relocate a remote path # # to another location on the backup server. This is useful for backing # # up ZFS snapshots of a filesystem or other preporatory directories # # created by a pre-script # path /remote/path/=/local/path # path /path/.zfs/snapshot/snapname=/path # # # The exclude statement defines an exclude regular expression. The # # pattern excluded is excluded from ALL paths defined for host. # # This path is relative to ALL paths specified with the "path" # # configuration. For example, if you define: # # # # path /foo # # exclude /bar # # # # This will recursively exclude /foo/bar from the backup. # exclude /exclude-dir # # } ############################################################################# # home directories go into it's own thread because it takes forever host homedirnfs.mydomain.com { thread-id homedirs path /home/* } ############################################################################# # Remote Site 1 host svn.mydomain.com { thread-id remote-site-1 path /svnroot-backup=/svnroot } host devserver.mydomain.com { thread-id remote-site-1 path /http path /usr/local/etc exclude /static exclude /backup* } host nameserver1.mydomain.com { thread-id remote-site-1 path /usr/local/etc } host nameserver2.mydomain.com { thread-id remote-site-1 path /usr/local/etc } host ftpserver.mydomain.com { thread-id remote-site-1 path /usr/local/etc path /ftp/* } ############################################################################# # Remote Site 2 host mysql.mydomain.com { thread-id remote-site-2 path /usr/local/etc path /mysql/.zfs/snapshot/backup=/mysql pre-script /usr/local/bin/snapshot-db tank/mysql@backup exclude /master-log.* force-checksum yes # this is HIGHLY recommended for MySQL backups } host server1.mydomain.com { thread-id remote-site-2 path /usr/local/etc } host server2.mydomain.com { thread-id remote-site-2 path /usr/local/etc } host server3.mydomain.com { thread-id remote-site-2 path /usr/local/etc } host solrlucene.mydomain.com { thread-id remote-site-2 path /usr/local/etc path /solr exclude /*/solr/data/* exclude /*/solr/logs/* }