FreeBSD Manual Pages
ZFS-SNAPSHOT(8) System Manager's Manual ZFS-SNAPSHOT(8) NAME zfs-snapshot -- create snapshots of ZFS datasets SYNOPSIS zfs snapshot [-r] [-o property=value] dataset@snapname DESCRIPTION Creates a snapshot of a dataset or multiple snapshots of different datasets. Snapshots are created atomically. That is, a snapshot is a consistent image of a dataset at a specific point in time; it includes all modifi- cations to the dataset made by system calls that have successfully com- pleted before that point in time. Recursive snapshots created through the -r option are all created at the same time. zfs snap can be used as an alias for zfs snapshot. See the "Snapshots" section of zfsconcepts(7) for details. -o property=value Set the specified property; see zfs create for details. -r Recursively create snapshots of all descendent datasets EXAMPLES Example 1: Creating a ZFS Snapshot The following command creates a snapshot named yesterday. This snap- shot is mounted on demand in the .zfs/snapshot directory at the root of the pool/home/bob file system. # zfs snapshot pool/home/bob@yesterday Example 2: Creating and Destroying Multiple Snapshots The following command creates snapshots named yesterday of pool/home and all of its descendent file systems. Each snapshot is mounted on demand in the .zfs/snapshot directory at the root of its file system. The second command destroys the newly created snapshots. # zfs snapshot -r pool/home@yesterday # zfs destroy -r pool/home@yesterday Example 3: Promoting a ZFS Clone The following commands illustrate how to test out changes to a file system, and then replace the original file system with the changed one, using clones, clone promotion, and renaming: # zfs create pool/project/production populate /pool/project/production with data # zfs snapshot pool/project/production@today # zfs clone pool/project/production@today pool/project/beta make changes to /pool/project/beta and test them # zfs promote pool/project/beta # zfs rename pool/project/production pool/project/legacy # zfs rename pool/project/beta pool/project/production once the legacy version is no longer needed, it can be destroyed # zfs destroy pool/project/legacy Example 4: Performing a Rolling Snapshot The following example shows how to maintain a history of snapshots with a consistent naming scheme. To keep a week's worth of snapshots, the user destroys the oldest snapshot, renames the remaining snapshots, and then creates a new snapshot, as follows: # zfs destroy -r pool/users@7daysago # zfs rename -r pool/users@6daysago @7daysago # zfs rename -r pool/users@5daysago @6daysago # zfs rename -r pool/users@4daysago @5daysago # zfs rename -r pool/users@3daysago @4daysago # zfs rename -r pool/users@2daysago @3daysago # zfs rename -r pool/users@yesterday @2daysago # zfs rename -r pool/users@today @yesterday # zfs snapshot -r pool/users@today SEE ALSO zfs-bookmark(8), zfs-clone(8), zfs-destroy(8), zfs-diff(8), zfs-hold(8), zfs-rename(8), zfs-rollback(8), zfs-send(8) FreeBSD Ports 14.quarterly March 16, 2022 ZFS-SNAPSHOT(8)
NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=zfs-snapshot&sektion=8&manpath=FreeBSD+Ports+14.3.quarterly>