Man page - zfs-snapshot(8)
Manual
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 modifications to the dataset made by system calls that have successfully completed 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 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 ZFS-SNAPSHOT (8)