mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-27 19:39:35 +03:00
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
|