Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ZFS-SNAPSHOT-MGMT(8)	FreeBSD	System Manager's Manual	  ZFS-SNAPSHOT-MGMT(8)

NAME
     zfs-snapshot-mgmt -- automate creation of new and removal of stale	ZFS
     snapshots

SYNOPSIS
     zfs-snapshot-mgmt

DESCRIPTION
     The utility creates ZFS snapshots and removes snapshots it	has created
     that are stale.  Rules for	creating and removing are defined in the con-
     figuration	file.

     zfs-snapshot-mgmt is designed to be run by	the cron(8) utility.

CONFIGURATION
     zfs-snapshot-mgmt reads settings from the
     /usr/local/etc/zfs-snapshot-mgmt.conf file.

   General Structure
     The file is in the	YAML format: it	contains keys and values separated by
     a colon (:). Each value may span multiple lines and be a list or a	map
     with key-value pairs. The indentation is always a multiple	of two spaces.

     There are two top-level options:

     snapshot_prefix
	   prefix for snapshots	created	and recognised by this tool.  All cre-
	   ated	snapshots will have names consisting of	this prefix and	cur-
	   rent	date and time.	Only snapshots beginning with this prefix will
	   be considered for removal.

     filesystems
	   the main part of configuration - specifies rules for	creating and
	   removing snapshots at each filesystem.  The value for this key con-
	   tains keys for each filesystem (as seen by ZFS, e.g.	tank/home)
	   with	snapshot creation and preservation settings.

     There is an example configuration in the EXAMPLES section.

   Creation Rules
     For each filesystem there is one snapshot creation_rule defined.  It
     specifies when snapshots for the particular filesystem should be created.
     It	has two	parameters.  All values	are specified in minutes.

     at_multiple
	   defines how often should a snapshot be created.  E.g. a value of 60
	   means that a	snapshot is to be created every	hour.

     offset
	   defines an offset from midnight that	is to be applied to the	param-
	   eter.  E.g. specifying a value of 30	means that the first snapshot
	   will	be taken 30 minutes after midnight.

   Preservation	Rules
     These rules specify which of the created snapshots	should be preserved.
     All that do not match the any of the rules	and whose names	begin with
     snapshot_prefix are destroyed.

     Each of the rules has three parameters:

     for_minutes
	   specifies how long after snapshot creation is the rule applicable.

     at_multiple
	   analogous to	the same parameter for creation_rule - snapshots whose
	   creation time (in minutes since midnight) is	a multiple of this
	   value are retained.

     offset
	   analogous to	the same parameter for creation_rule - applies to
	   at_multiple.

EXAMPLES
   Crontab Configuration
     To	invoke the program every five minutes you may add the following	line
     to	the /etc/crontab configuration file:

	   */5 * * * * root /usr/local/bin/zfs-snapshot-mgmt

     Bear in mind that this effectively	limits the resolution to 5 minutes.

   zfs-snapshot-mgmt.conf
     Here is an	example	configuration.

	   snapshot_prefix: auto-
	   filesystems:
	     tank/usr/home:
	       creation_rule:
		 at_multiple: 5
		 offset: 0
	       preservation_rules:
		 - { for_minutes:    90, at_multiple:	 0, offset:    0 }
		 - { for_minutes:   720, at_multiple:	30, offset:    0 }
		 - { for_minutes: 10080, at_multiple:  180, offset:  120 }
	     tank/usr:
	       recursive: true
	       creation_rule:
		 at_multiple: 1440
		 offset: 1200
	       preservation_rules:
		 - { for_minutes: 5760,	at_multiple: 1440, offset: 1200	}

     which specifies the following settings:

     +o	 names of created snapshots start with auto- and only such snapshots
	 are considered	for removal.

     +o	 there are two filesystems: tank/usr/home and tank/usr.

     +o	 snapshots for tank/usr/home are created every five minutes, starting
	 at midnight.

     +o	 all snapshots for tank/usr/home are kept for 90 minutes after cre-
	 ation.

     +o	 only snapshots	created	af full	and half hour are retained for 12
	 hours (720 minutes) after creation for	tank/usr/home.

     +o	 snapshots created at multiple of three	hours starting with 2 a.m. are
	 retained for a	week (10080 minutes) after creation for	tank/usr/home.
	 This means: 2 a.m., 5 a.m., 8 a.m. and	so on.

     +o	 snapshots on tank/usr are created once	a day at 20 p.m. and retained
	 for 4 days.

     +o	 snapshots are taken recursively on tank/usr filesystem	and all
	 filesystems mounted under it.

FILES
     /usr/local/etc/zfs-snapshot-mgmt.conf The configuration file

SEE ALSO
     cron(8), zfs(1M)

AUTHORS
     Marcin Simonides <marcin@studio4plus.com>

BUGS
     There is no way to	use alternative	path for the configuration file.

FreeBSD	13.0			 June 6, 2008			  FreeBSD 13.0

NAME | SYNOPSIS | DESCRIPTION | CONFIGURATION | EXAMPLES | FILES | SEE ALSO | AUTHORS | BUGS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=zfs-snapshot-mgmt&sektion=8&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help