###################################### # This is a sample sanoid.conf file. # # It should go in /etc/sanoid. # ###################################### # name your backup modules with the path to their ZFS dataset - no leading slash. [zpoolname/datasetname] # pick a template - they're defined (and editable) below. use_template = production # if you want to, you can override settings in the template directly inside module definitions like this. # in this example, we override the template to only keep 12 hourly and 1 monthly snapshot for this dataset. hourly = 12 monthly = 1 ############################# # templates below this line # ############################# # name your templates template_templatename. you can create your own, and use them in your module definitions above. [template_production] template = yes hourly = 36 daily = 30 monthly = 3 yearly = 0 autosnap = yes autoprune = yes [template_backup] template = yes autoprune = yes hourly = 30 daily = 90 monthly = 12 yearlies = 0 ### don't take new snapshots - snapshots on backup ### datasets are replicated in from source, not ### generated locally autosnap = no ### monitor hourlies and dailies, but don't warn or ### crit until they're over 48h old, since replication ### is typically daily only hourly_warn = 2880 hourly_crit = 3600 daily_warn = 48 daily_crit = 60 ################################################################################### # default template - contains same values as hardcoded, unless you override here. # # ALL values set here, so useful as documentation even if # # nothing is actually overridden. # ################################################################################### [template_default] template = yes # If any snapshot type is set to 0, we will not take snapshots for it - and will immediately # prune any of those type snapshots already present. # # Otherwise, if autoprune is set, we will prune any snapshots of that type which are older # than (setting * periodicity) - so if daily = 90, we'll prune any dailies older than 90 days. autoprune = yes hourly = 48 daily = 90 monthly = 6 yearly = 0 min_percent_free = 10 # We will automatically take snapshots if autosnap is on, at the desired times configured # below (or immediately, if we don't have one since the last preferred time for that type). # # Note that we will not take snapshots for a given type if that type is set to 0 above, # regardless of the autosnap setting - for example, if yearly=0 we will not take yearlies # even if we've defined a preferred time for yearlies and autosnap is on. autosnap = 1; # hourly - top of the hour hourly_min = 0; # daily - at 23:59 (most people expect a daily to contain everything done DURING that day) daily_hour = 23; daily_min = 59; # monthly - immediately at the beginning of the month (ie 00:00 of day 1) monthly_mday = 1; monthly_hour = 0; monthly_min = 0; # yearly - immediately at the beginning of the year (ie 00:00 on Jan 1) yearly_mon = 1; yearly_mday = 1; yearly_hour = 0; yearly_min = 0; # monitoring plugin - define warn / crit levels for each snapshot type by age, in units of one period down # example hourly_warn = 90 means issue WARNING if most recent hourly snapshot is not less than 90 minutes old, # daily_crit = 36 means issue CRITICAL if most recent daily snapshot is not less than 36 hours old, # monthly_warn = 36 means issue WARNING if most recent monthly snapshot is not less than 36 days old... etc. # # monitor_dont_warn = yes will cause the monitoring service to report warnings as text, but with status OK. # monitor_dont_crit = yes will cause the monitoring service to report criticals as text, but with status OK. # # setting any value to 0 will keep the monitoring service from monitoring that snapshot type on that section at all. monitor = yes monitor_dont_warn = no monitor_dont_crit = no hourly_warn = 90 hourly_crit = 360 daily_warn = 28 daily_crit = 32 monthly_warn = 32 monthly_crit = 35 yearly_warn = 0 yearly_crit = 0