mirror of
				https://git.proxmox.com/git/mirror_zfs
				synced 2025-10-31 20:33:04 +00:00 
			
		
		
		
	 1d3ba0bf01
			
		
	
	
		1d3ba0bf01
		
			
		
	
	
	
	
		
			
			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
 |