mirror of
https://github.com/borgbackup/borg.git
synced 2024-12-22 15:57:15 +00:00
226 lines
8.1 KiB
Groff
226 lines
8.1 KiB
Groff
.\" Man page generated from reStructuredText.
|
|
.
|
|
.
|
|
.nr rst2man-indent-level 0
|
|
.
|
|
.de1 rstReportMargin
|
|
\\$1 \\n[an-margin]
|
|
level \\n[rst2man-indent-level]
|
|
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
-
|
|
\\n[rst2man-indent0]
|
|
\\n[rst2man-indent1]
|
|
\\n[rst2man-indent2]
|
|
..
|
|
.de1 INDENT
|
|
.\" .rstReportMargin pre:
|
|
. RS \\$1
|
|
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
|
|
. nr rst2man-indent-level +1
|
|
.\" .rstReportMargin post:
|
|
..
|
|
.de UNINDENT
|
|
. RE
|
|
.\" indent \\n[an-margin]
|
|
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
.nr rst2man-indent-level -1
|
|
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
|
|
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
|
|
..
|
|
.TH "BORG-PRUNE" 1 "2024-10-31" "" "borg backup tool"
|
|
.SH NAME
|
|
borg-prune \- Prune repository archives according to specified rules
|
|
.SH SYNOPSIS
|
|
.sp
|
|
borg [common options] prune [options] [NAME]
|
|
.SH DESCRIPTION
|
|
.sp
|
|
The prune command prunes a repository by deleting all archives not matching
|
|
any of the specified retention options.
|
|
.sp
|
|
Important: Repository disk space is \fBnot\fP freed until you run \fBborg compact\fP\&.
|
|
.sp
|
|
This command is normally used by automated backup scripts wanting to keep a
|
|
certain number of historic backups. This retention policy is commonly referred to as
|
|
\fI\%GFS\fP
|
|
(Grandfather\-father\-son) backup rotation scheme.
|
|
.sp
|
|
The recommended way to use prune is to give the archive series name to it via the
|
|
NAME argument (assuming you have the same name for all archives in a series).
|
|
Alternatively, you can also use \-\-match\-archives (\-a), then only archives that
|
|
match the pattern are considered for deletion and only those archives count
|
|
towards the totals specified by the rules.
|
|
Otherwise, \fIall\fP archives in the repository are candidates for deletion!
|
|
There is no automatic distinction between archives representing different
|
|
contents. These need to be distinguished by specifying matching globs.
|
|
.sp
|
|
If you have multiple series of archives with different data sets (e.g.
|
|
from different machines) in one shared repository, use one prune call per
|
|
series.
|
|
.sp
|
|
The \fB\-\-keep\-within\fP option takes an argument of the form \(dq<int><char>\(dq,
|
|
where char is \(dqH\(dq, \(dqd\(dq, \(dqw\(dq, \(dqm\(dq, \(dqy\(dq. For example, \fB\-\-keep\-within 2d\fP means
|
|
to keep all archives that were created within the past 48 hours.
|
|
\(dq1m\(dq is taken to mean \(dq31d\(dq. The archives kept with this option do not
|
|
count towards the totals specified by any other options.
|
|
.sp
|
|
A good procedure is to thin out more and more the older your backups get.
|
|
As an example, \fB\-\-keep\-daily 7\fP means to keep the latest backup on each day,
|
|
up to 7 most recent days with backups (days without backups do not count).
|
|
The rules are applied from secondly to yearly, and backups selected by previous
|
|
rules do not count towards those of later rules. The time that each backup
|
|
starts is used for pruning purposes. Dates and times are interpreted in the local
|
|
timezone of the system where borg prune runs, and weeks go from Monday to Sunday.
|
|
Specifying a negative number of archives to keep means that there is no limit.
|
|
.sp
|
|
Borg will retain the oldest archive if any of the secondly, minutely, hourly,
|
|
daily, weekly, monthly, quarterly, or yearly rules was not otherwise able to
|
|
meet its retention target. This enables the first chronological archive to
|
|
continue aging until it is replaced by a newer archive that meets the retention
|
|
criteria.
|
|
.sp
|
|
The \fB\-\-keep\-13weekly\fP and \fB\-\-keep\-3monthly\fP rules are two different
|
|
strategies for keeping archives every quarter year.
|
|
.sp
|
|
The \fB\-\-keep\-last N\fP option is doing the same as \fB\-\-keep\-secondly N\fP (and it will
|
|
keep the last N archives under the assumption that you do not create more than one
|
|
backup archive in the same second).
|
|
.sp
|
|
You can influence how the \fB\-\-list\fP output is formatted by using the \fB\-\-short\fP
|
|
option (less wide output) or by giving a custom format using \fB\-\-format\fP (see
|
|
the \fBborg repo\-list\fP description for more details about the format string).
|
|
.SH OPTIONS
|
|
.sp
|
|
See \fIborg\-common(1)\fP for common options of Borg commands.
|
|
.SS arguments
|
|
.INDENT 0.0
|
|
.TP
|
|
.B NAME
|
|
specify the archive name
|
|
.UNINDENT
|
|
.SS optional arguments
|
|
.INDENT 0.0
|
|
.TP
|
|
.B \-n\fP,\fB \-\-dry\-run
|
|
do not change repository
|
|
.TP
|
|
.B \-\-list
|
|
output verbose list of archives it keeps/prunes
|
|
.TP
|
|
.B \-\-short
|
|
use a less wide archive part format
|
|
.TP
|
|
.B \-\-list\-pruned
|
|
output verbose list of archives it prunes
|
|
.TP
|
|
.B \-\-list\-kept
|
|
output verbose list of archives it keeps
|
|
.TP
|
|
.BI \-\-format \ FORMAT
|
|
specify format for the archive part (default: \(dq{archive:<36} {time} [{id}]\(dq)
|
|
.TP
|
|
.BI \-\-keep\-within \ INTERVAL
|
|
keep all archives within this time interval
|
|
.TP
|
|
.B \-\-keep\-last\fP,\fB \-\-keep\-secondly
|
|
number of secondly archives to keep
|
|
.TP
|
|
.B \-\-keep\-minutely
|
|
number of minutely archives to keep
|
|
.TP
|
|
.B \-H\fP,\fB \-\-keep\-hourly
|
|
number of hourly archives to keep
|
|
.TP
|
|
.B \-d\fP,\fB \-\-keep\-daily
|
|
number of daily archives to keep
|
|
.TP
|
|
.B \-w\fP,\fB \-\-keep\-weekly
|
|
number of weekly archives to keep
|
|
.TP
|
|
.B \-m\fP,\fB \-\-keep\-monthly
|
|
number of monthly archives to keep
|
|
.TP
|
|
.B \-\-keep\-13weekly
|
|
number of quarterly archives to keep (13 week strategy)
|
|
.TP
|
|
.B \-\-keep\-3monthly
|
|
number of quarterly archives to keep (3 month strategy)
|
|
.TP
|
|
.B \-y\fP,\fB \-\-keep\-yearly
|
|
number of yearly archives to keep
|
|
.UNINDENT
|
|
.SS Archive filters
|
|
.INDENT 0.0
|
|
.TP
|
|
.BI \-a \ PATTERN\fR,\fB \ \-\-match\-archives \ PATTERN
|
|
only consider archives matching all patterns. see \(dqborg help match\-archives\(dq.
|
|
.TP
|
|
.BI \-\-oldest \ TIMESPAN
|
|
consider archives between the oldest archive\(aqs timestamp and (oldest + TIMESPAN), e.g. 7d or 12m.
|
|
.TP
|
|
.BI \-\-newest \ TIMESPAN
|
|
consider archives between the newest archive\(aqs timestamp and (newest \- TIMESPAN), e.g. 7d or 12m.
|
|
.TP
|
|
.BI \-\-older \ TIMESPAN
|
|
consider archives older than (now \- TIMESPAN), e.g. 7d or 12m.
|
|
.TP
|
|
.BI \-\-newer \ TIMESPAN
|
|
consider archives newer than (now \- TIMESPAN), e.g. 7d or 12m.
|
|
.UNINDENT
|
|
.SH EXAMPLES
|
|
.sp
|
|
Be careful, prune is a potentially dangerous command, it will remove backup
|
|
archives.
|
|
.sp
|
|
The default of prune is to apply to \fBall archives in the repository\fP unless
|
|
you restrict its operation to a subset of the archives.
|
|
.sp
|
|
The recommended way to name archives (with \fBborg create\fP) is to use the
|
|
identical archive name within a series of archives. Then you can simply give
|
|
that name to prune also, so it operates just on that series of archives.
|
|
.sp
|
|
Alternatively, you can use \fB\-a\fP / \fB\-\-match\-archives\fP to do a match on the
|
|
archive names to select some of them.
|
|
When using \fB\-a\fP, be careful to choose a good pattern \- e.g. do not use a
|
|
prefix \(dqfoo\(dq if you do not also want to match \(dqfoobar\(dq.
|
|
.sp
|
|
It is strongly recommended to always run \fBprune \-v \-\-list \-\-dry\-run ...\fP
|
|
first so you will see what it would do without it actually doing anything.
|
|
.sp
|
|
Don\(aqt forget to run \fBborg compact \-v\fP after prune to actually free disk space.
|
|
.INDENT 0.0
|
|
.INDENT 3.5
|
|
.sp
|
|
.nf
|
|
.ft C
|
|
# Keep 7 end of day and 4 additional end of week archives.
|
|
# Do a dry\-run without actually deleting anything.
|
|
$ borg prune \-v \-\-list \-\-dry\-run \-\-keep\-daily=7 \-\-keep\-weekly=4
|
|
|
|
# Similar as above but only apply to the archive series named \(aq{hostname}\(aq:
|
|
$ borg prune \-v \-\-list \-\-keep\-daily=7 \-\-keep\-weekly=4 \(aq{hostname}\(aq
|
|
|
|
# Similar as above but apply to archive names starting with the hostname
|
|
# of the machine followed by a \(dq\-\(dq character:
|
|
$ borg prune \-v \-\-list \-\-keep\-daily=7 \-\-keep\-weekly=4 \-a \(aqsh:{hostname}\-*\(aq
|
|
|
|
# Keep 7 end of day, 4 additional end of week archives,
|
|
# and an end of month archive for every month:
|
|
$ borg prune \-v \-\-list \-\-keep\-daily=7 \-\-keep\-weekly=4 \-\-keep\-monthly=\-1
|
|
|
|
# Keep all backups in the last 10 days, 4 additional end of week archives,
|
|
# and an end of month archive for every month:
|
|
$ borg prune \-v \-\-list \-\-keep\-within=10d \-\-keep\-weekly=4 \-\-keep\-monthly=\-1
|
|
.ft P
|
|
.fi
|
|
.UNINDENT
|
|
.UNINDENT
|
|
.sp
|
|
There is also a visualized prune example in \fBdocs/misc/prune\-example.txt\fP\&.
|
|
.SH SEE ALSO
|
|
.sp
|
|
\fIborg\-common(1)\fP, \fIborg\-compact(1)\fP
|
|
.SH AUTHOR
|
|
The Borg Collective
|
|
.\" Generated by docutils manpage writer.
|
|
.
|