borg2-transfer(1)
archives transfer from other repository, optionally upgrade data format
Description
BORG-TRANSFER
NAME
borg-transfer - archives transfer from other repository, optionally upgrade data format
SYNOPSIS
borg [common options] transfer [options]
DESCRIPTION
This command transfers archives from one repository to another repository. Optionally, it can also upgrade the transferred data.
Suggested use for general purpose archive transfer (not repo upgrades):
# create a
related DST_REPO (reusing key material from SRC_REPO), so
that
# chunking and chunk id generation will work in the same way
as before.
borg --repo=DST_REPO rcreate --other-repo=SRC_REPO
--encryption=DST_ENC
# transfer
archives from SRC_REPO to DST_REPO
borg --repo=DST_REPO transfer --other-repo=SRC_REPO
--dry-run # check what it would do
borg --repo=DST_REPO transfer --other-repo=SRC_REPO # do it!
borg --repo=DST_REPO transfer --other-repo=SRC_REPO
--dry-run # check! anything left?
The default is to transfer all archives, including checkpoint archives.
You could use the misc. archive filter options to limit which archives it will transfer, e.g. using the -a option. This is recommended for big repositories with multiple data sets to keep the runtime per invocation lower.
For repository upgrades (e.g. from a borg 1.2 repo to a related borg 2.0 repo), usage is quite similar to the above:
borg --repo=DST_REPO transfer --other-repo=SRC_REPO --upgrader=From12To20
OPTIONS
See borg-common(1) for common options of Borg commands.
options
-n, --dry-run
do not change repository, just check
--other-repo SRC_REPOSITORY
transfer archives from the other repository
--upgrader UPGRADER
use the upgrader to convert transferred data (default: no conversion)
Archive filters
-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.
EXAMPLES
# 0. Have borg 2.0 installed on client AND server, have a b12 repo copy for testing.
# 1. Create a
new "related" repository:
# here, the existing borg 1.2 repo used repokey-blake2 (and
aes-ctr mode),
# thus we use repokey-blake2-aes-ocb for the new borg 2.0
repo.
# staying with the same chunk id algorithm (blake2) and with
the same
# key material (via --other-repo <oldrepo>) will make
deduplication work
# between old archives (copied with borg transfer) and
future ones.
# the AEAD cipher does not matter (everything must be
re-encrypted and
# re-authenticated anyway), you could also choose
repokey-blake2-chacha20-poly1305.
# in case your old borg repo did not use blake2, just remove
the "-blake2".
$ borg --repo ssh://borg2@borgbackup/./tests/b20 rcreate \
--other-repo ssh://borg2@borgbackup/./tests/b12 -e
repokey-blake2-aes-ocb
# 2. Check what
and how much it would transfer:
$ borg --repo ssh://borg2@borgbackup/./tests/b20 transfer
--upgrader=From12To20 \
--other-repo ssh://borg2@borgbackup/./tests/b12
--dry-run
# 3. Transfer
(copy) archives from old repo into new repo (takes time and
space!):
$ borg --repo ssh://borg2@borgbackup/./tests/b20 transfer
--upgrader=From12To20 \
--other-repo ssh://borg2@borgbackup/./tests/b12
# 4. Check if
we have everything (same as 2.):
$ borg --repo ssh://borg2@borgbackup/./tests/b20 transfer
--upgrader=From12To20 \
--other-repo ssh://borg2@borgbackup/./tests/b12
--dry-run
SEE ALSO
borg-common(1)
AUTHOR
The Borg Collective
See Also
- common(1)