| ZFS-SNAPSHOT(8) | System Manager's Manual | ZFS-SNAPSHOT(8) | 
zfs-snapshot —
    create snapshots of ZFS datasets
| zfs | snapshot[-r]
      [-oproperty=value]…
      dataset@snapname… | 
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.
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@yesterdayThe 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@yesterdayThe 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:
#zfscreatepool/project/production populate /pool/project/production with data #zfssnapshotpool/project/production@today #zfsclonepool/project/production@today pool/project/beta make changes to /pool/project/beta and test them #zfspromotepool/project/beta #zfsrenamepool/project/production pool/project/legacy #zfsrenamepool/project/beta pool/project/production once the legacy version is no longer needed, it can be destroyed #zfsdestroypool/project/legacy
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:
#zfsdestroy-rpool/users@7daysago #zfsrename-rpool/users@6daysago @7daysago #zfsrename-rpool/users@5daysago @6daysago #zfsrename-rpool/users@4daysago @5daysago #zfsrename-rpool/users@3daysago @4daysago #zfsrename-rpool/users@2daysago @3daysago #zfsrename-rpool/users@yesterday @2daysago #zfsrename-rpool/users@today @yesterday #zfssnapshot-rpool/users@today
zfs-bookmark(8), zfs-clone(8), zfs-destroy(8), zfs-diff(8), zfs-hold(8), zfs-rename(8), zfs-rollback(8), zfs-send(8)
| March 16, 2022 | OpenZFS |