# # This disk-only setup stores all data into @archivedir@ # # The preconfigured backup scheme is as follows: # # Full Backups are done on first Saturday at 21:00 (#04) # Full Backups are written into the "Full" Pool (#05) # Full Backups are kept for 365 Days (#06) # # Differential Backups are done on 2nd to 5th Saturday at 21:00 (#07) # Differential Backups are written into the "Differential" Pool (#08) # Differential Backups are kept for 90 Days (#09) # # Incremental Backups are done monday to friday at 21:00 (#10) # Incremental Backups are written into the "Incremental" Pool (#11) # Incremental Backups are kept for 30 Days (#12) # # What you also have to do is to change the default fileset (#13) # to either one of the demo filesets given or create our own fileset. # # Director { # define myself Name = @basename@-dir QueryFile = "@scriptdir@/query.sql" Maximum Concurrent Jobs = 10 Password = "@dir_password@" # Console password Messages = Standard Auditing = yes # remove comment in next line to load dynamic backends from specified directory # Backend Directory = @backenddir@ # remove comment from "Plugin Directory" to load plugins from specified directory. # if "Plugin Names" is defined, only the specified plugins will be loaded, # otherwise all director plugins (*-dir.so) from the "Plugin Directory". # # Plugin Directory = @plugindir@ # Plugin Names = "" } JobDefs { Name = "DefaultJob" Type = Backup Level = Incremental Client = @basename@-fd FileSet = "SelfTest" Storage = File Messages = Standard Pool = Incremental Priority = 10 Write Bootstrap = "@working_dir@/%c.bsr" Full Backup Pool = Full # write Full Backups into "Full" Pool (#05) Differential Backup Pool = Differential # write Diff Backups into "Differential" Pool (#08) Incremental Backup Pool = Incremental # write Incr Backups into "Incremental" Pool (#11) } # # Define the main nightly save backup job # By default, this job will back up to disk in @archivedir@ Job { Name = "BackupClient1" JobDefs = "DefaultJob" } Job { Name = "BackupClient1FileList" JobDefs = "DefaultJob" FileSet = "FS_TESTJOB1" } # # Backup the catalog database (after the nightly save) # Job { Name = "BackupCatalog" JobDefs = "DefaultJob" Level = Full FileSet="Catalog" # This creates an ASCII copy of the catalog # Arguments to make_catalog_backup.pl are: # make_catalog_backup.pl RunBeforeJob = "@scriptdir@/make_catalog_backup.pl MyCatalog" # This deletes the copy of the catalog RunAfterJob = "@scriptdir@/delete_catalog_backup" # This sends the bootstrap via mail for disaster recovery. # Should be sent to another system, please change recipient accordingly Write Bootstrap = "|@bindir@/bsmtp -h @smtp_host@ -f \"\(Bareos\) \" -s \"Bootstrap for Job %j\" @job_email@" # (#01) Priority = 11 # run after main backup } # # Standard Restore template, to be changed by Console program # Only one such job is needed for all Jobs/Clients/Storage ... # Job { Name = "RestoreFiles" Type = Restore Client=@basename@-fd FileSet = "Linux All" Storage = File Pool = Incremental Messages = Standard Where = /tmp/bareos-restores } FileSet { Name = "Linux All" Include { Options { Signature = MD5 # calculate md5 checksum per file One FS = No # change into other filessytems FS Type = ext2 # filesystems of given types will be backed up FS Type = ext3 # others will be ignored FS Type = ext4 FS Type = xfs FS Type = zfs FS Type = reiserfs FS Type = jfs FS Type = btrfs } File = / } # Things that usually have to be excluded # You have to exclude @archivedir@ # on your bareos server Exclude { File = @working_dir@ File = @archivedir@ File = /proc File = /tmp File = /.journal File = /.fsck } } FileSet { Name = FS_TESTJOB1 Include { Options { Signature = MD5 } File=<@tmpdir@/file-list } } FileSet { Name = "SelfTest" Include { Options { Signature = MD5 } File = "@builddir@" } } # This is the backup of the catalog FileSet { Name = "Catalog" Include { Options { signature = MD5 } File = "@working_dir@/@db_name@.sql" # database dump File = "@confdir@" # configuration } } # Client (File Services) to backup Client { Name = @basename@-fd Address = @hostname@ Password = "@fd_password@" # password for FileDaemon } # # Definition of file storage device # Storage { Name = File # Do not use "localhost" here Address = @hostname@ # N.B. Use a fully qualified name here Password = "@sd_password@" Device = FileStorage Media Type = File } # # Generic catalog service # Catalog { Name = MyCatalog dbdriver = "@db_type@" dbname = "@db_name@" dbuser = "@db_user@" dbpassword = "@db_password@" } # # Reasonable message delivery -- send most everything to email address and to the console # Messages { Name = Standard console = all, !skipped, !saved, !audit catalog = all, !audit } # # Full Pool definition # Pool { Name = Full Pool Type = Backup Recycle = yes # Bareos can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 365 days # How long should the Full Backups be kept? (#06) Maximum Volume Bytes = 50G # Limit Volume size to something reasonable Maximum Volumes = 100 # Limit number of Volumes in Pool Label Format = "Full-" # Volumes will be labeled "Full-" } # # Differential Pool definition # Pool { Name = Differential Pool Type = Backup Recycle = yes # Bareos can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 90 days # How long should the Differential Backups be kept? (#09) Maximum Volume Bytes = 10G # Limit Volume size to something reasonable Maximum Volumes = 100 # Limit number of Volumes in Pool Label Format = "Differential-" # Volumes will be labeled "Differential-" } # # Incremental Pool definition # Pool { Name = Incremental Pool Type = Backup Recycle = yes # Bareos can automatically recycle Volumes AutoPrune = yes # Prune expired volumes Volume Retention = 30 days # How long should the Incremental Backups be kept? (#12) Maximum Volume Bytes = 1G # Limit Volume size to something reasonable Maximum Volumes = 100 # Limit number of Volumes in Pool Label Format = "Incremental-" # Volumes will be labeled "Incremental-" } # # Scratch pool definition # Pool { Name = Scratch Pool Type = Scratch } # # Restricted console used by tray-monitor to get the status of the director # Console { Name = @basename@-mon Password = "@mon_dir_password@" CommandACL = status, .status JobACL = *all* }