mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-11-04 03:24:44 +00:00 
			
		
		
		
	The commit replaces all findings of the link: http://www.opensolaris.org/os/licensing with this one: https://opensource.org/licenses/CDDL-1.0 Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de> Closes #13619
		
			
				
	
	
		
			227 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			227 lines
		
	
	
		
			7.5 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-DESTROY 8
 | 
						|
.Os
 | 
						|
.
 | 
						|
.Sh NAME
 | 
						|
.Nm zfs-destroy
 | 
						|
.Nd destroy ZFS dataset, snapshots, or bookmark
 | 
						|
.Sh SYNOPSIS
 | 
						|
.Nm zfs
 | 
						|
.Cm destroy
 | 
						|
.Op Fl Rfnprv
 | 
						|
.Ar filesystem Ns | Ns Ar volume
 | 
						|
.Nm zfs
 | 
						|
.Cm destroy
 | 
						|
.Op Fl Rdnprv
 | 
						|
.Ar filesystem Ns | Ns Ar volume Ns @ Ns Ar snap Ns
 | 
						|
.Oo % Ns Ar snap Ns Oo , Ns Ar snap Ns Oo % Ns Ar snap Oc Oc Oc Ns …
 | 
						|
.Nm zfs
 | 
						|
.Cm destroy
 | 
						|
.Ar filesystem Ns | Ns Ar volume Ns # Ns Ar bookmark
 | 
						|
.
 | 
						|
.Sh DESCRIPTION
 | 
						|
.Bl -tag -width ""
 | 
						|
.It Xo
 | 
						|
.Nm zfs
 | 
						|
.Cm destroy
 | 
						|
.Op Fl Rfnprv
 | 
						|
.Ar filesystem Ns | Ns Ar volume
 | 
						|
.Xc
 | 
						|
Destroys the given dataset.
 | 
						|
By default, the command unshares any file systems that are currently shared,
 | 
						|
unmounts any file systems that are currently mounted, and refuses to destroy a
 | 
						|
dataset that has active dependents
 | 
						|
.Pq children or clones .
 | 
						|
.Bl -tag -width "-R"
 | 
						|
.It Fl R
 | 
						|
Recursively destroy all dependents, including cloned file systems outside the
 | 
						|
target hierarchy.
 | 
						|
.It Fl f
 | 
						|
Forcibly unmount file systems.
 | 
						|
This option has no effect on non-file systems or unmounted file systems.
 | 
						|
.It Fl n
 | 
						|
Do a dry-run
 | 
						|
.Pq Qq No-op
 | 
						|
deletion.
 | 
						|
No data will be deleted.
 | 
						|
This is useful in conjunction with the
 | 
						|
.Fl v
 | 
						|
or
 | 
						|
.Fl p
 | 
						|
flags to determine what data would be deleted.
 | 
						|
.It Fl p
 | 
						|
Print machine-parsable verbose information about the deleted data.
 | 
						|
.It Fl r
 | 
						|
Recursively destroy all children.
 | 
						|
.It Fl v
 | 
						|
Print verbose information about the deleted data.
 | 
						|
.El
 | 
						|
.Pp
 | 
						|
Extreme care should be taken when applying either the
 | 
						|
.Fl r
 | 
						|
or the
 | 
						|
.Fl R
 | 
						|
options, as they can destroy large portions of a pool and cause unexpected
 | 
						|
behavior for mounted file systems in use.
 | 
						|
.It Xo
 | 
						|
.Nm zfs
 | 
						|
.Cm destroy
 | 
						|
.Op Fl Rdnprv
 | 
						|
.Ar filesystem Ns | Ns Ar volume Ns @ Ns Ar snap Ns
 | 
						|
.Oo % Ns Ar snap Ns Oo , Ns Ar snap Ns Oo % Ns Ar snap Oc Oc Oc Ns …
 | 
						|
.Xc
 | 
						|
The given snapshots are destroyed immediately if and only if the
 | 
						|
.Nm zfs Cm destroy
 | 
						|
command without the
 | 
						|
.Fl d
 | 
						|
option would have destroyed it.
 | 
						|
Such immediate destruction would occur, for example, if the snapshot had no
 | 
						|
clones and the user-initiated reference count were zero.
 | 
						|
.Pp
 | 
						|
If a snapshot does not qualify for immediate destruction, it is marked for
 | 
						|
deferred deletion.
 | 
						|
In this state, it exists as a usable, visible snapshot until both of the
 | 
						|
preconditions listed above are met, at which point it is destroyed.
 | 
						|
.Pp
 | 
						|
An inclusive range of snapshots may be specified by separating the first and
 | 
						|
last snapshots with a percent sign.
 | 
						|
The first and/or last snapshots may be left blank, in which case the
 | 
						|
filesystem's oldest or newest snapshot will be implied.
 | 
						|
.Pp
 | 
						|
Multiple snapshots
 | 
						|
.Pq or ranges of snapshots
 | 
						|
of the same filesystem or volume may be specified in a comma-separated list of
 | 
						|
snapshots.
 | 
						|
Only the snapshot's short name
 | 
						|
.Po the part after the
 | 
						|
.Sy @
 | 
						|
.Pc
 | 
						|
should be specified when using a range or comma-separated list to identify
 | 
						|
multiple snapshots.
 | 
						|
.Bl -tag -width "-R"
 | 
						|
.It Fl R
 | 
						|
Recursively destroy all clones of these snapshots, including the clones,
 | 
						|
snapshots, and children.
 | 
						|
If this flag is specified, the
 | 
						|
.Fl d
 | 
						|
flag will have no effect.
 | 
						|
.It Fl d
 | 
						|
Destroy immediately.
 | 
						|
If a snapshot cannot be destroyed now, mark it for deferred destruction.
 | 
						|
.It Fl n
 | 
						|
Do a dry-run
 | 
						|
.Pq Qq No-op
 | 
						|
deletion.
 | 
						|
No data will be deleted.
 | 
						|
This is useful in conjunction with the
 | 
						|
.Fl p
 | 
						|
or
 | 
						|
.Fl v
 | 
						|
flags to determine what data would be deleted.
 | 
						|
.It Fl p
 | 
						|
Print machine-parsable verbose information about the deleted data.
 | 
						|
.It Fl r
 | 
						|
Destroy
 | 
						|
.Pq or mark for deferred deletion
 | 
						|
all snapshots with this name in descendent file systems.
 | 
						|
.It Fl v
 | 
						|
Print verbose information about the deleted data.
 | 
						|
.Pp
 | 
						|
Extreme care should be taken when applying either the
 | 
						|
.Fl r
 | 
						|
or the
 | 
						|
.Fl R
 | 
						|
options, as they can destroy large portions of a pool and cause unexpected
 | 
						|
behavior for mounted file systems in use.
 | 
						|
.El
 | 
						|
.It Xo
 | 
						|
.Nm zfs
 | 
						|
.Cm destroy
 | 
						|
.Ar filesystem Ns | Ns Ar volume Ns # Ns Ar bookmark
 | 
						|
.Xc
 | 
						|
The given bookmark is destroyed.
 | 
						|
.El
 | 
						|
.
 | 
						|
.Sh EXAMPLES
 | 
						|
.\" These are, respectively, examples 3, 10, 15 from zfs.8
 | 
						|
.\" Make sure to update them bidirectionally
 | 
						|
.Ss Example 1 : 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 2 : 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 3 : 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-create 8 ,
 | 
						|
.Xr zfs-hold 8
 |