NAME
zfs-snapshot — create snapshots of ZFS datasets
SYNOPSIS
zfs snapshot [-r] [
-o property=value ]… dataset@snapname…
DESCRIPTION
All previous modifications by successful system calls to the file system are part of the snapshots. Snapshots are taken atomically, so that all snapshots correspond to the same moment in 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 snapshot 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)
OpenZFS March 16, 2022 OpenZFS