borg-recreate - Re-create archives
Contents
Description
Recreate the contents of existing archives.
recreate is a potentially dangerous function and might lead to data loss (if used wrongly). BE VERY
CAREFUL!
Important: Repository disk space is not freed until you run borgcompact.
--exclude, --exclude-from, --exclude-if-present, --keep-exclude-tags and PATH have the exact same
semantics as in "borg create", but they only check for files in the archives and not in the local file
system. If PATHs are specified, the resulting archives will only contain files from these PATHs.
Note that all paths in an archive are relative, therefore absolute patterns/paths will not match
(--exclude, --exclude-from, PATHs).
--chunker-params will re-chunk all files in the archive, this can be used to have upgraded Borg 0.xx
archives deduplicate with Borg 1.x archives.
USEWITHCAUTION. Depending on the PATHs and patterns given, recreate can be used to delete files from
archives permanently. When in doubt, use --dry-run--verbose--list to see how patterns/PATHS are
interpreted. See list_item_flags in borgcreate for details.
The archive being recreated is only removed after the operation completes. The archive that is built
during the operation exists at the same time at "<ARCHIVE>.recreate". The new archive will have a
different archive ID.
With --target the original archive is not replaced, instead a new archive is created.
When rechunking, space usage can be substantial - expect at least the entire deduplicated size of the
archives using the previous chunker params.
If you recently ran borg check --repair and it had to fix lost chunks with all-zero replacement chunks,
please first run another backup for the same data and re-run borg check --repair afterwards to heal any
archives that had lost chunks which are still generated from the input data.
Important: running borg recreate to re-chunk will remove the chunks_healthy metadata of all items with
replacement chunks, so healing will not be possible any more after re-chunking (it is also unlikely it
would ever work: due to the change of chunking parameters, the missing chunk likely will never be seen
again even if you still have the data that produced it).
Examples
# Create a backup with little but fast compression
$ borg create archive /some/files --compression lz4
# Then compress it - this might take longer, but the backup has already completed,
# so no inconsistencies from a long-running backup job.
$ borg recreate -a archive --recompress --compression zlib,9
# Remove unwanted files from all archives in a repository.
# Note the relative path for the --exclude option - archives only contain relative paths.
$ borg recreate --exclude home/icke/Pictures/drunk_photos
# Change archive comment
$ borg create --comment "This is a comment" archivename ~
$ borg info -a archivename
Name: archivename
Fingerprint: ...
Comment: This is a comment
...
$ borg recreate --comment "This is a better comment" -a archivename
$ borg info -a archivename
Name: archivename
Fingerprint: ...
Comment: This is a better comment
...
Name
borg-recreate - Re-create archives
Options
See borg-common(1) for common options of Borg commands.
argumentsPATH paths to recreate; patterns are supported
options--list output verbose list of items (files, dirs, ...)
--filterSTATUSCHARS
only display items with the given status characters (listed in borg create --help)
-n, --dry-run
do not change anything
-s, --stats
print statistics at end
Include/Excludeoptions-ePATTERN, --excludePATTERN
exclude paths matching PATTERN
--exclude-fromEXCLUDEFILE
read exclude patterns from EXCLUDEFILE, one per line
--patternPATTERN
include/exclude paths matching PATTERN
--patterns-fromPATTERNFILE
read include/exclude patterns from PATTERNFILE, one per line
--exclude-caches
exclude directories that contain a CACHEDIR.TAG file ( <http://www.bford.info/cachedir/spec.html>
)
--exclude-if-presentNAME
exclude directories that are tagged by containing a filesystem object with the given NAME
--keep-exclude-tags
if tag objects are specified with --exclude-if-present, don't omit the tag objects themselves from
the backup archive
Archivefilters-aPATTERN, --match-archivesPATTERN
only consider archives matching all patterns. see "borg help match-archives".
--sort-byKEYS
Comma-separated list of sorting keys; valid keys are: timestamp, archive, name, id, tags, host,
user; default is: timestamp
--firstN
consider first N archives after other filters were applied
--lastN
consider last N archives after other filters were applied
--oldestTIMESPAN
consider archives between the oldest archive's timestamp and (oldest + TIMESPAN), e.g. 7d or 12m.
--newestTIMESPAN
consider archives between the newest archive's timestamp and (newest - TIMESPAN), e.g. 7d or 12m.
--olderTIMESPAN
consider archives older than (now - TIMESPAN), e.g. 7d or 12m.
--newerTIMESPAN
consider archives newer than (now - TIMESPAN), e.g. 7d or 12m.
--targetTARGET
create a new archive with the name ARCHIVE, do not replace existing archive
--commentCOMMENT
add a comment text to the archive
--timestampTIMESTAMP
manually specify the archive creation date/time (yyyy-mm-ddThh:mm:ss[(+|-)HH:MM] format,
(+|-)HH:MM is the UTC offset, default: local time zone). Alternatively, give a reference
file/directory.
-CCOMPRESSION, --compressionCOMPRESSION
select compression algorithm, see the output of the "borg help compression" command for details.
--chunker-paramsPARAMS
rechunk using given chunker parameters (ALGO, CHUNK_MIN_EXP, CHUNK_MAX_EXP, HASH_MASK_BITS,
HASH_WINDOW_SIZE) or default to use the chunker defaults. default: do not rechunk
See Also
borg-common(1), borg-patterns(1), borg-placeholders(1), borg-compression(1)
Synopsis
borg [common options] recreate [options] [PATH...]
