| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 | .\" 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-11-16" "" "borg backup tool".SH NAMEborg-prune \- Prune repository archives according to specified rules.SH SYNOPSIS.spborg [common options] prune [options] [NAME].SH DESCRIPTION.spThe prune command prunes a repository by soft\-deleting all archives notmatching any of the specified retention options..spImportant:.INDENT 0.0.IP \(bu 2The prune command will only mark archives for deletion (\(dqsoft\-deletion\(dq),repository disk space is \fBnot\fP freed until you run \fBborg compact\fP\&..IP \(bu 2You can use \fBborg undelete\fP to undelete archives, but only untilyou run \fBborg compact\fP\&..UNINDENT.spThis command is normally used by automated backup scripts wanting to keep acertain number of historic backups. This retention policy is commonly referred to as\fI\%GFS\fP(Grandfather\-father\-son) backup rotation scheme..spThe recommended way to use prune is to give the archive series name to it via theNAME argument (assuming you have the same name for all archives in a series).Alternatively, you can also use \-\-match\-archives (\-a), then only archives thatmatch the pattern are considered for deletion and only those archives counttowards 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 differentcontents. These need to be distinguished by specifying matching globs..spIf you have multiple series of archives with different data sets (e.g.from different machines) in one shared repository, use one prune call perseries..spThe \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 meansto 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 notcount towards the totals specified by any other options..spA 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 previousrules do not count towards those of later rules. The time that each backupstarts is used for pruning purposes. Dates and times are interpreted in the localtimezone 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..spBorg will retain the oldest archive if any of the secondly, minutely, hourly,daily, weekly, monthly, quarterly, or yearly rules was not otherwise able tomeet its retention target. This enables the first chronological archive tocontinue aging until it is replaced by a newer archive that meets the retentioncriteria..spThe \fB\-\-keep\-13weekly\fP and \fB\-\-keep\-3monthly\fP rules are two differentstrategies for keeping archives every quarter year..spThe \fB\-\-keep\-last N\fP option is doing the same as \fB\-\-keep\-secondly N\fP (and it willkeep the last N archives under the assumption that you do not create more than onebackup archive in the same second)..spYou can influence how the \fB\-\-list\fP output is formatted by using the \fB\-\-short\fPoption (less wide output) or by giving a custom format using \fB\-\-format\fP (seethe \fBborg repo\-list\fP description for more details about the format string)..SH OPTIONS.spSee \fIborg\-common(1)\fP for common options of Borg commands..SS arguments.INDENT 0.0.TP.B NAMEspecify the archive name.UNINDENT.SS optional arguments.INDENT 0.0.TP.B  \-n\fP,\fB  \-\-dry\-rundo not change repository.TP.B  \-\-listoutput verbose list of archives it keeps/prunes.TP.B  \-\-shortuse a less wide archive part format.TP.B  \-\-list\-prunedoutput verbose list of archives it prunes.TP.B  \-\-list\-keptoutput verbose list of archives it keeps.TP.BI \-\-format \ FORMATspecify format for the archive part (default: \(dq{archive:<36} {time} [{id}]\(dq).TP.BI \-\-keep\-within \ INTERVALkeep all archives within this time interval.TP.B  \-\-keep\-last\fP,\fB  \-\-keep\-secondlynumber of secondly archives to keep.TP.B  \-\-keep\-minutelynumber of minutely archives to keep.TP.B  \-H\fP,\fB  \-\-keep\-hourlynumber of hourly archives to keep.TP.B  \-d\fP,\fB  \-\-keep\-dailynumber of daily archives to keep.TP.B  \-w\fP,\fB  \-\-keep\-weeklynumber of weekly archives to keep.TP.B  \-m\fP,\fB  \-\-keep\-monthlynumber of monthly archives to keep.TP.B  \-\-keep\-13weeklynumber of quarterly archives to keep (13 week strategy).TP.B  \-\-keep\-3monthlynumber of quarterly archives to keep (3 month strategy).TP.B  \-y\fP,\fB  \-\-keep\-yearlynumber of yearly archives to keep.UNINDENT.SS Archive filters.INDENT 0.0.TP.BI \-a \ PATTERN\fR,\fB \ \-\-match\-archives \ PATTERNonly consider archives matching all patterns. see \(dqborg help match\-archives\(dq..TP.BI \-\-oldest \ TIMESPANconsider archives between the oldest archive\(aqs timestamp and (oldest + TIMESPAN), e.g. 7d or 12m..TP.BI \-\-newest \ TIMESPANconsider archives between the newest archive\(aqs timestamp and (newest \- TIMESPAN), e.g. 7d or 12m..TP.BI \-\-older \ TIMESPANconsider archives older than (now \- TIMESPAN), e.g. 7d or 12m..TP.BI \-\-newer \ TIMESPANconsider archives newer than (now \- TIMESPAN), e.g. 7d or 12m..UNINDENT.SH EXAMPLES.spBe careful, prune is a potentially dangerous command, it will remove backuparchives..spThe default of prune is to apply to \fBall archives in the repository\fP unlessyou restrict its operation to a subset of the archives..spThe recommended way to name archives (with \fBborg create\fP) is to use theidentical archive name within a series of archives. Then you can simply givethat name to prune also, so it operates just on that series of archives..spAlternatively, you can use \fB\-a\fP / \fB\-\-match\-archives\fP to do a match on thearchive names to select some of them.When using \fB\-a\fP, be careful to choose a good pattern \- e.g. do not use aprefix \(dqfoo\(dq if you do not also want to match \(dqfoobar\(dq..spIt is strongly recommended to always run \fBprune \-v \-\-list \-\-dry\-run ...\fPfirst so you will see what it would do without it actually doing anything..spDon\(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.spThere 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 AUTHORThe Borg Collective.\" Generated by docutils manpage writer..
 |