borg-recreate - Re-create archives
borg [common options] recreate [options] [PATH...]
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
borg
compact.
--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).
--recompress allows one to change the compression of existing data in
archives. Due to how Borg stores compressed size information this might
display incorrect information for archives that were not recreated at the same
time. There is no risk of data loss by this.
--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.
USE WITH CAUTION. 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
borg create 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 (or recompressing), space usage can be substantial - expect at
least the entire deduplicated size of the archives using the previous chunker
(or compression) 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).
See
borg-common(1) for common options of Borg commands.
- PATH
- paths to recreate; patterns are supported
- --list
- output verbose list of items (files, dirs, ...)
-
--filter STATUSCHARS
- 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
-
-e PATTERN, --exclude PATTERN
- exclude paths matching PATTERN
-
--exclude-from EXCLUDEFILE
- read exclude patterns from EXCLUDEFILE, one per line
-
--pattern PATTERN
- include/exclude paths matching PATTERN
-
--patterns-from PATTERNFILE
- 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-present NAME
- 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
-
-a PATTERN, --match-archives PATTERN
- only consider archive names matching the pattern. see
"borg help match-archives".
-
--sort-by KEYS
- Comma-separated list of sorting keys; valid keys are:
timestamp, name, id; default is: timestamp
-
--first N
- consider first N archives after other filters were
applied
-
--last N
- consider last N archives after other filters were
applied
-
--oldest TIMESPAN
- consider archives between the oldest archive's timestamp
and (oldest + TIMESPAN), e.g. 7d or 12m.
-
--newest TIMESPAN
- consider archives between the newest archive's timestamp
and (newest - TIMESPAN), e.g. 7d or 12m.
-
--older TIMESPAN
- consider archives older than (now - TIMESPAN), e.g. 7d oder
12m.
-
--newer TIMESPAN
- consider archives newer than (now - TIMESPAN), e.g. 7d or
12m.
-
--target TARGET
- create a new archive with the name ARCHIVE, do not replace
existing archive (only applies for a single archive)
-
-c SECONDS, --checkpoint-interval SECONDS
- write checkpoint every SECONDS seconds (Default: 1800)
-
--checkpoint-volume BYTES
- write checkpoint every BYTES bytes (Default: 0, meaning no
volume based checkpointing)
-
--comment COMMENT
- add a comment text to the archive
-
--timestamp TIMESTAMP
- 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.
-
-C COMPRESSION, --compression COMPRESSION
- select compression algorithm, see the output of the
"borg help compression" command for details.
-
--recompress MODE
- recompress data chunks according to MODE and
--compression. Possible modes are if-different: recompress
if current compression is with a different compression algorithm or
different level; always: recompress unconditionally; and
never: do not recompress (use this option explicitly to prevent
recompression). If no MODE is given, if-different will be used. Not
passing --recompress is equivalent to "--recompress never".
-
--chunker-params PARAMS
- 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
# 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
...
borg-common(1),
borg-patterns(1),
borg-placeholders(1),
borg-compression(1)
The Borg Collective