143 lines
5.1 KiB
Groff
143 lines
5.1 KiB
Groff
.\"
|
|
.\" 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
|