mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	Sponsored-by: https://despairlabs.com/sponsor/ Signed-off-by: Rob Norris <robn@despairlabs.com> Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
		
			
				
	
	
		
			144 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			144 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.\" SPDX-License-Identifier: CDDL-1.0
 | 
						|
.\"
 | 
						|
.\" CDDL HEADER START
 | 
						|
.\"
 | 
						|
.\" The contents of this file are subject to the terms of the
 | 
						|
.\" Common Development and Distribution License (the "License").
 | 
						|
.\" You may not use this file except in compliance with the License.
 | 
						|
.\"
 | 
						|
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 | 
						|
.\" or https://opensource.org/licenses/CDDL-1.0.
 | 
						|
.\" See the License for the specific language governing permissions
 | 
						|
.\" and limitations under the License.
 | 
						|
.\"
 | 
						|
.\" When distributing Covered Code, include this CDDL HEADER in each
 | 
						|
.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 | 
						|
.\" If applicable, add the following below this CDDL HEADER, with the
 | 
						|
.\" fields enclosed by brackets "[]" replaced with your own identifying
 | 
						|
.\" information: Portions Copyright [yyyy] [name of copyright owner]
 | 
						|
.\"
 | 
						|
.\" CDDL HEADER END
 | 
						|
.\"
 | 
						|
.\" Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved.
 | 
						|
.\" Copyright 2011 Joshua M. Clulow <josh@sysmgr.org>
 | 
						|
.\" Copyright (c) 2011, 2019 by Delphix. All rights reserved.
 | 
						|
.\" Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
 | 
						|
.\" Copyright (c) 2014, Joyent, Inc. All rights reserved.
 | 
						|
.\" Copyright (c) 2014 by Adam Stevko. All rights reserved.
 | 
						|
.\" Copyright (c) 2014 Integros [integros.com]
 | 
						|
.\" Copyright 2019 Richard Laager. All rights reserved.
 | 
						|
.\" Copyright 2018 Nexenta Systems, Inc.
 | 
						|
.\" Copyright 2019 Joyent, Inc.
 | 
						|
.\"
 | 
						|
.Dd March 16, 2022
 | 
						|
.Dt ZFS-SNAPSHOT 8
 | 
						|
.Os
 | 
						|
.
 | 
						|
.Sh NAME
 | 
						|
.Nm zfs-snapshot
 | 
						|
.Nd create snapshots of ZFS datasets
 | 
						|
.Sh SYNOPSIS
 | 
						|
.Nm zfs
 | 
						|
.Cm snapshot
 | 
						|
.Op Fl r
 | 
						|
.Oo Fl o Ar property Ns = Ns Ar value Oc Ns …
 | 
						|
.Ar dataset Ns @ Ns Ar snapname Ns …
 | 
						|
.
 | 
						|
.Sh DESCRIPTION
 | 
						|
Creates a snapshot of a dataset or multiple snapshots of different
 | 
						|
datasets.
 | 
						|
.Pp
 | 
						|
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
 | 
						|
.Fl r
 | 
						|
option are all created at the same time.
 | 
						|
.Pp
 | 
						|
.Nm zfs Cm snap
 | 
						|
can be used as an alias for
 | 
						|
.Nm zfs Cm snapshot .
 | 
						|
.Pp
 | 
						|
See the
 | 
						|
.Sx Snapshots
 | 
						|
section of
 | 
						|
.Xr zfsconcepts 7
 | 
						|
for details.
 | 
						|
.Bl -tag -width "-o"
 | 
						|
.It Fl o Ar property Ns = Ns Ar value
 | 
						|
Set the specified property; see
 | 
						|
.Nm zfs Cm create
 | 
						|
for details.
 | 
						|
.It Fl r
 | 
						|
Recursively create snapshots of all descendent datasets
 | 
						|
.El
 | 
						|
.
 | 
						|
.Sh EXAMPLES
 | 
						|
.\" These are, respectively, examples 2, 3, 10, 15 from zfs.8
 | 
						|
.\" Make sure to update them bidirectionally
 | 
						|
.Ss Example 1 : No Creating a ZFS Snapshot
 | 
						|
The following command creates a snapshot named
 | 
						|
.Ar yesterday .
 | 
						|
This snapshot is mounted on demand in the
 | 
						|
.Pa .zfs/snapshot
 | 
						|
directory at the root of the
 | 
						|
.Ar pool/home/bob
 | 
						|
file system.
 | 
						|
.Dl # Nm zfs Cm snapshot Ar pool/home/bob Ns @ Ns Ar yesterday
 | 
						|
.
 | 
						|
.Ss Example 2 : No Creating and Destroying Multiple Snapshots
 | 
						|
The following command creates snapshots named
 | 
						|
.Ar yesterday No of Ar pool/home
 | 
						|
and all of its descendent file systems.
 | 
						|
Each snapshot is mounted on demand in the
 | 
						|
.Pa .zfs/snapshot
 | 
						|
directory at the root of its file system.
 | 
						|
The second command destroys the newly created snapshots.
 | 
						|
.Dl # Nm zfs Cm snapshot Fl r Ar pool/home Ns @ Ns Ar yesterday
 | 
						|
.Dl # Nm zfs Cm destroy Fl r Ar pool/home Ns @ Ns Ar yesterday
 | 
						|
.
 | 
						|
.Ss Example 3 : No 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:
 | 
						|
.Bd -literal -compact -offset Ds
 | 
						|
.No # Nm zfs Cm create Ar pool/project/production
 | 
						|
  populate /pool/project/production with data
 | 
						|
.No # Nm zfs Cm snapshot Ar pool/project/production Ns @ Ns Ar today
 | 
						|
.No # Nm zfs Cm clone Ar pool/project/production@today pool/project/beta
 | 
						|
  make changes to /pool/project/beta and test them
 | 
						|
.No # Nm zfs Cm promote Ar pool/project/beta
 | 
						|
.No # Nm zfs Cm rename Ar pool/project/production pool/project/legacy
 | 
						|
.No # Nm zfs Cm rename Ar pool/project/beta pool/project/production
 | 
						|
  once the legacy version is no longer needed, it can be destroyed
 | 
						|
.No # Nm zfs Cm destroy Ar pool/project/legacy
 | 
						|
.Ed
 | 
						|
.
 | 
						|
.Ss Example 4 : No 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:
 | 
						|
.Bd -literal -compact -offset Ds
 | 
						|
.No # Nm zfs Cm destroy Fl r Ar pool/users@7daysago
 | 
						|
.No # Nm zfs Cm rename Fl r Ar pool/users@6daysago No @ Ns Ar 7daysago
 | 
						|
.No # Nm zfs Cm rename Fl r Ar pool/users@5daysago No @ Ns Ar 6daysago
 | 
						|
.No # Nm zfs Cm rename Fl r Ar pool/users@4daysago No @ Ns Ar 5daysago
 | 
						|
.No # Nm zfs Cm rename Fl r Ar pool/users@3daysago No @ Ns Ar 4daysago
 | 
						|
.No # Nm zfs Cm rename Fl r Ar pool/users@2daysago No @ Ns Ar 3daysago
 | 
						|
.No # Nm zfs Cm rename Fl r Ar pool/users@yesterday No @ Ns Ar 2daysago
 | 
						|
.No # Nm zfs Cm rename Fl r Ar pool/users@today No @ Ns Ar yesterday
 | 
						|
.No # Nm zfs Cm snapshot Fl r Ar pool/users Ns @ Ns Ar today
 | 
						|
.Ed
 | 
						|
.
 | 
						|
.Sh SEE ALSO
 | 
						|
.Xr zfs-bookmark 8 ,
 | 
						|
.Xr zfs-clone 8 ,
 | 
						|
.Xr zfs-destroy 8 ,
 | 
						|
.Xr zfs-diff 8 ,
 | 
						|
.Xr zfs-hold 8 ,
 | 
						|
.Xr zfs-rename 8 ,
 | 
						|
.Xr zfs-rollback 8 ,
 | 
						|
.Xr zfs-send 8
 |