zfs-destroy.8 (7641B)
- .\"
- .\" 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