1.\" 2.\" CDDL HEADER START 3.\" 4.\" The contents of this file are subject to the terms of the 5.\" Common Development and Distribution License (the "License"). 6.\" You may not use this file except in compliance with the License. 7.\" 8.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9.\" or https://opensource.org/licenses/CDDL-1.0. 10.\" See the License for the specific language governing permissions 11.\" and limitations under the License. 12.\" 13.\" When distributing Covered Code, include this CDDL HEADER in each 14.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15.\" If applicable, add the following below this CDDL HEADER, with the 16.\" fields enclosed by brackets "[]" replaced with your own identifying 17.\" information: Portions Copyright [yyyy] [name of copyright owner] 18.\" 19.\" CDDL HEADER END 20.\" 21.\" Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved. 22.\" Copyright 2011 Joshua M. Clulow <josh@sysmgr.org> 23.\" Copyright (c) 2011, 2019 by Delphix. All rights reserved. 24.\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved. 25.\" Copyright (c) 2014, Joyent, Inc. All rights reserved. 26.\" Copyright (c) 2014 by Adam Stevko. All rights reserved. 27.\" Copyright (c) 2014 Integros [integros.com] 28.\" Copyright 2019 Richard Laager. All rights reserved. 29.\" Copyright 2018 Nexenta Systems, Inc. 30.\" Copyright 2019 Joyent, Inc. 31.\" 32.Dd March 16, 2022 33.Dt ZFS-SNAPSHOT 8 34.Os 35. 36.Sh NAME 37.Nm zfs-snapshot 38.Nd create snapshots of ZFS datasets 39.Sh SYNOPSIS 40.Nm zfs 41.Cm snapshot 42.Op Fl r 43.Oo Fl o Ar property Ns = Ns Ar value Oc Ns … 44.Ar dataset Ns @ Ns Ar snapname Ns … 45. 46.Sh DESCRIPTION 47All previous modifications by successful system calls to the file system are 48part of the snapshots. 49Snapshots are taken atomically, so that all snapshots correspond to the same 50moment in time. 51.Nm zfs Cm snap 52can be used as an alias for 53.Nm zfs Cm snapshot . 54See the 55.Sx Snapshots 56section of 57.Xr zfsconcepts 7 58for details. 59.Bl -tag -width "-o" 60.It Fl o Ar property Ns = Ns Ar value 61Set the specified property; see 62.Nm zfs Cm create 63for details. 64.It Fl r 65Recursively create snapshots of all descendent datasets 66.El 67. 68.Sh EXAMPLES 69.\" These are, respectively, examples 2, 3, 10, 15 from zfs.8 70.\" Make sure to update them bidirectionally 71.Ss Example 1 : No Creating a ZFS Snapshot 72The following command creates a snapshot named 73.Ar yesterday . 74This snapshot is mounted on demand in the 75.Pa .zfs/snapshot 76directory at the root of the 77.Ar pool/home/bob 78file system. 79.Dl # Nm zfs Cm snapshot Ar pool/home/bob Ns @ Ns Ar yesterday 80. 81.Ss Example 2 : No Creating and Destroying Multiple Snapshots 82The following command creates snapshots named 83.Ar yesterday No of Ar pool/home 84and all of its descendent file systems. 85Each snapshot is mounted on demand in the 86.Pa .zfs/snapshot 87directory at the root of its file system. 88The second command destroys the newly created snapshots. 89.Dl # Nm zfs Cm snapshot Fl r Ar pool/home Ns @ Ns Ar yesterday 90.Dl # Nm zfs Cm destroy Fl r Ar pool/home Ns @ Ns Ar yesterday 91. 92.Ss Example 3 : No Promoting a ZFS Clone 93The following commands illustrate how to test out changes to a file system, and 94then replace the original file system with the changed one, using clones, clone 95promotion, and renaming: 96.Bd -literal -compact -offset Ds 97.No # Nm zfs Cm create Ar pool/project/production 98 populate /pool/project/production with data 99.No # Nm zfs Cm snapshot Ar pool/project/production Ns @ Ns Ar today 100.No # Nm zfs Cm clone Ar pool/project/production@today pool/project/beta 101 make changes to /pool/project/beta and test them 102.No # Nm zfs Cm promote Ar pool/project/beta 103.No # Nm zfs Cm rename Ar pool/project/production pool/project/legacy 104.No # Nm zfs Cm rename Ar pool/project/beta pool/project/production 105 once the legacy version is no longer needed, it can be destroyed 106.No # Nm zfs Cm destroy Ar pool/project/legacy 107.Ed 108. 109.Ss Example 4 : No Performing a Rolling Snapshot 110The following example shows how to maintain a history of snapshots with a 111consistent naming scheme. 112To keep a week's worth of snapshots, the user destroys the oldest snapshot, 113renames the remaining snapshots, and then creates a new snapshot, as follows: 114.Bd -literal -compact -offset Ds 115.No # Nm zfs Cm destroy Fl r Ar pool/users@7daysago 116.No # Nm zfs Cm rename Fl r Ar pool/users@6daysago No @ Ns Ar 7daysago 117.No # Nm zfs Cm rename Fl r Ar pool/users@5daysago No @ Ns Ar 6daysago 118.No # Nm zfs Cm rename Fl r Ar pool/users@4daysago No @ Ns Ar 5daysago 119.No # Nm zfs Cm rename Fl r Ar pool/users@3daysago No @ Ns Ar 4daysago 120.No # Nm zfs Cm rename Fl r Ar pool/users@2daysago No @ Ns Ar 3daysago 121.No # Nm zfs Cm rename Fl r Ar pool/users@yesterday No @ Ns Ar 2daysago 122.No # Nm zfs Cm rename Fl r Ar pool/users@today No @ Ns Ar yesterday 123.No # Nm zfs Cm snapshot Fl r Ar pool/users Ns @ Ns Ar today 124.Ed 125. 126.Sh SEE ALSO 127.Xr zfs-bookmark 8 , 128.Xr zfs-clone 8 , 129.Xr zfs-destroy 8 , 130.Xr zfs-diff 8 , 131.Xr zfs-hold 8 , 132.Xr zfs-rename 8 , 133.Xr zfs-rollback 8 , 134.Xr zfs-send 8 135