Merge pull request #9511 from ThomasWaldmann/rel144
Some checks are pending
CodeQL / Analyze (push) Waiting to run
Windows CI / msys2-ucrt64 (push) Waiting to run

Release 1.4.4
This commit is contained in:
TW 2026-03-19 09:10:48 +01:00 committed by GitHub
commit aaf397a632
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
40 changed files with 339 additions and 320 deletions

1
.gitignore vendored
View file

@ -32,3 +32,4 @@ borg.exe
.coverage.*
.vagrant
.eggs
.DS_Store

View file

@ -414,44 +414,50 @@ Compatibility notes:
Change Log
==========
Version 1.4.4 (not yet released)
--------------------------------
Version 1.4.4 (2026-03-19)
--------------------------
For upgrade and compatibility hints, please also read the "Upgrade Notes" section
above.
New features:
- prune: added -v / --info output, #9262
- mount: warn about symlinks pointing outside of the mountpoint, #9254
- create/info: remember/show cwd at the time of backup creation, #6191
- prune: added -v / --info output, #9262.
- mount: warn about symlinks pointing outside of the mount point, #9254.
- create/info: remember/show cwd at the time of archive creation, #6191.
Fixes:
- hashindex_size: return int64_t, #9423
- compress: make Padme size obfuscation usable ("obfuscate,250,...")
- hashindex: fix memory leak, #9497.
- hashindex: check values in read HashHeader, #9485.
- hashindex_size: return int64_t, #9423.
- hashindex: fix iteritems segfaulting with non-existent marker, #9368.
Never happened in borg, because borg always gives existing markers to iteritems.
- compress: make Padme size obfuscation usable ("obfuscate,250,...").
- borgfs/mount: get_base_dir: avoid using incorrect HOME, #3395.
Other changes:
- pyinstaller binary: do not exclude ssl, needed for pyfuse3/trio, #9196
- mount: fuse fs performance improvement
- hashindex: fixed iteritems segfaulting with non-existent marker, #9368.
Never happened in borg, because borg always gives existing markers to iteritems.
- PyInstaller binary: do not exclude SSL, needed for pyfuse3/trio, #9196.
- mount: FUSE FS performance improvement.
- warn when replaying segments, #9233.
- CI / tests:
- build linux binaries with pyfuse3
- use macos-15 to build the binaries
- tox: use pytest -n auto by default to speed up tests
- scripts/linux-run: run commands (e.g. tox) in a podman linux container
- fix race condition in test_with_lock, #8810
- fix spurious sparse test fail on win32, #7616
- cygwin: skip ~root base dir test
- fix coverage collection for daemonized borg mount, #9448
- build Linux binaries with pyfuse3.
- use macOS 15 to build the binaries.
- scripts/linux-run: run commands (e.g. tox) in a Podman Linux container.
- fix race condition in test_with_lock, #8810.
- fix spurious sparse test failure on Win32, #7616.
- Cygwin: skip ~root base dir test.
- fix coverage collection for daemonized `borg mount`, #9448.
- docs:
- consolidate key backup info in "borg key export" help, #6204
- fix typos found by codespell
- update binary readme
- github: enhance pull request template
- move RTD version selector to sidebar top-left, #8204.
- consolidate key backup info in `borg key export` help, #6204.
- clarify append-only != write-only, #9304.
- fix typos found by codespell.
- update binary README.
- GitHub: enhance pull request template.
Version 1.4.3 (2025-12-02)

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-BENCHMARK-CRUD" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-benchmark-crud" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-benchmark-crud \- Benchmark Create, Read, Update, Delete for archives.
.SH SYNOPSIS
.sp
@ -95,7 +96,6 @@ path where to create benchmark input data
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-BENCHMARK" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-benchmark" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-benchmark \- benchmark command
.SH SYNOPSIS
.nf
@ -41,7 +42,6 @@ These commands perform various benchmarks.
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-benchmark\-crud(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-BREAK-LOCK" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-break-lock" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-break-lock \- Break the repository lock (e.g. in case it was left by a dead borg.
.SH SYNOPSIS
.sp
@ -50,7 +51,6 @@ repository for which to break the locks
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-CHECK" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-check" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-check \- Check repository consistency
.SH SYNOPSIS
.sp
@ -95,7 +96,7 @@ The check command is a read\-only task by default. If any corruption is found,
Borg will report the issue and proceed with checking. To actually repair the
issues found, pass \fB\-\-repair\fP\&.
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
\fB\-\-repair\fP is a \fBPOTENTIALLY DANGEROUS FEATURE\fP and might lead to data
@ -203,7 +204,6 @@ consider last N archives after other filters were applied
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-COMMON" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-common" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-common \- Common options of Borg commands
.SH SYNOPSIS
.INDENT 0.0
@ -105,7 +106,6 @@ Use this command to connect to the \(aqborg serve\(aq process (default: \(aqssh\
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-COMPACT" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-compact" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-compact \- compact segment files in the repository
.SH SYNOPSIS
.sp
@ -101,7 +102,6 @@ $ borg compact \-\-cleanup\-commits /path/to/repo
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-COMPRESSION" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-compression" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-compression \- Details regarding compression
.SH DESCRIPTION
.sp
@ -153,7 +154,7 @@ Example probabilities for SPEC \fB1\fP:
.UNINDENT
.sp
Uses the Padmé algorithm to deterministically pad the compressed size to a sum of
powers of 2, limiting overhead to 12%. See <https://lbarman.ch/blog/padme/> for details.
powers of 2, limiting overhead to 12%. See \%<https://\:lbarman\:.ch/\:blog/\:padme/> for details.
.UNINDENT
.sp
Examples:
@ -175,7 +176,6 @@ borg create \-\-compression obfuscate,250,zstd,3 ...
.EE
.UNINDENT
.UNINDENT
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-CONFIG" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-config" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-config \- get, set, and delete values in a repository or cache config file
.SH SYNOPSIS
.sp
@ -76,7 +77,7 @@ list the configuration of the repo
.UNINDENT
.SH EXAMPLES
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
The repository & cache config files are some of the only directly manipulable
@ -102,7 +103,6 @@ $ borg config /path/to/repo append_only 1
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-CREATE" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-create" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-create \- Create new archive
.SH SYNOPSIS
.sp
@ -210,7 +211,7 @@ include/exclude paths matching PATTERN
read include/exclude patterns from PATTERNFILE, one per line
.TP
.B \-\-exclude\-caches
exclude directories that contain a CACHEDIR.TAG file ( <http://www.bford.info/cachedir/spec.html> )
exclude directories that contain a CACHEDIR.TAG file (\%<http://\:www\:.bford\:.info/\:cachedir/\:spec\:.html>)
.TP
.BI \-\-exclude\-if\-present \ NAME
exclude directories that are tagged by containing a filesystem object with the given NAME
@ -519,7 +520,6 @@ So, be careful not to unintentionally trigger that.
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-delete(1)\fP, \fIborg\-prune(1)\fP, \fIborg\-check(1)\fP, \fIborg\-patterns(1)\fP, \fIborg\-placeholders(1)\fP, \fIborg\-compression(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-DELETE" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-delete" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-delete \- Delete an existing repository or archives
.SH SYNOPSIS
.sp
@ -148,7 +149,6 @@ Type \(aqYES\(aq if you understand this and want to continue: YES
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-compact(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-DIFF" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-diff" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-diff \- Diff contents of two archives
.SH SYNOPSIS
.sp
@ -226,7 +227,6 @@ added 0 B file4
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-EXPORT-TAR" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-export-tar" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-export-tar \- Export archive contents as a tarball
.SH SYNOPSIS
.sp
@ -144,7 +145,6 @@ $ borg export\-tar /path/to/repo::Monday \- | ssh somewhere \(dqcd extracted; ta
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-EXTRACT" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-extract" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-extract \- Extract archive contents
.SH SYNOPSIS
.sp
@ -53,7 +54,7 @@ decrypting, and decompressing.
\fB\-\-progress\fP can be slower than no progress display, since it makes one additional
pass over the archive metadata.
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
Currently, extract always writes into the current working directory (\(dq.\(dq),
@ -158,7 +159,6 @@ $ borg extract \-\-stdout /path/to/repo::my\-sdx | dd of=/dev/sdx bs=10M
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-mount(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-IMPORT-TAR" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-import-tar" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-import-tar \- Create a backup archive from a tarball
.SH SYNOPSIS
.sp
@ -128,7 +129,6 @@ select compression algorithm, see the output of the \(dqborg help compression\(d
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-INFO" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-info" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-info \- Show archive details such as disk space used
.SH SYNOPSIS
.sp
@ -146,7 +147,6 @@ Chunk index: 1015213 626934122
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-list(1)\fP, \fIborg\-diff(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,5 +1,6 @@
'\" t
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -28,8 +29,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-INIT" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-init" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-init \- Initialize an empty repository
.SH SYNOPSIS
.sp
@ -328,7 +329,6 @@ $ borg init \-\-encryption=keyfile user@hostname:backup
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-create(1)\fP, \fIborg\-delete(1)\fP, \fIborg\-check(1)\fP, \fIborg\-list(1)\fP, \fIborg\-key\-import(1)\fP, \fIborg\-key\-export(1)\fP, \fIborg\-key\-change\-passphrase(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-KEY-CHANGE-PASSPHRASE" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-key-change-passphrase" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-key-change-passphrase \- Change repository key file passphrase
.SH SYNOPSIS
.sp
@ -96,7 +97,6 @@ $ BORG_PASSPHRASE=old BORG_NEW_PASSPHRASE=new borg key change\-passphrase repo
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,36 +28,42 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-KEY-EXPORT" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-key-export" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-key-export \- Export the repository key for backup
.SH SYNOPSIS
.sp
borg [common options] key export [options] [REPOSITORY] [PATH]
.SH DESCRIPTION
.sp
This command backs up the borg key.
.sp
If repository encryption is used, the repository is inaccessible
without the key. This command allows one to back up this essential key.
without the borg key (and the passphrase that protects the borg key).
If a repository is not encrypted, but authenticated, the borg key is
still needed to access the repository normally.
.sp
For repositories using \fBkeyfile\fP encryption the key is kept locally
on the system that is capable of doing backups. To guard against loss
or corruption of this key, the key needs to be backed up independently
of the main data backup.
.sp
For repositories using \fBrepokey\fP encryption or \fBauthenticated\fP mode
the key is kept in the repository. A backup is thus not strictly needed,
but guards against the repository becoming inaccessible if the key is
corrupted or lost.
.sp
Note that the backup produced does not include the passphrase itself
(i.e., the exported key stays encrypted). In order to regain access to a
(i.e. the exported key stays encrypted). In order to regain access to a
repository, one needs both the exported key and the original passphrase.
Keep the exported key and the passphrase at safe places.
.sp
There are three backup formats. The normal backup format is suitable for
digital storage as a file. The \fB\-\-paper\fP backup format is optimized
for printing and typing in while importing, with per\-line checks to
reduce problems with manual input. The \fB\-\-qr\-html\fP option creates a printable
for printing and typing in while importing, with per line checks to
reduce problems with manual input. The \fB\-\-qr\-html\fP creates a printable
HTML template with a QR code and a copy of the \fB\-\-paper\fP\-formatted key.
.sp
For repositories using keyfile encryption the key is saved locally
on the system that is capable of doing backups. To guard against loss
of this key, the key needs to be backed up independently of the main
data backup.
.sp
For repositories using repokey encryption, the key is saved in the
repository in the config file. A backup is thus not strictly needed,
but it guards against the repository becoming inaccessible if the file
is damaged for some reason.
.sp
Examples:
.INDENT 0.0
.INDENT 3.5
@ -95,7 +102,6 @@ Create an html file suitable for printing and later type\-in or qr scan
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-key\-import(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-KEY-IMPORT" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-key-import" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-key-import \- Import the repository key from backup
.SH SYNOPSIS
.sp
@ -69,7 +70,6 @@ interactively import from a backup done with \fB\-\-paper\fP
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-key\-export(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-KEY-MIGRATE-TO-REPOKEY" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-key-migrate-to-repokey" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-key-migrate-to-repokey \- Migrate passphrase -> repokey
.SH SYNOPSIS
.sp
@ -60,7 +61,6 @@ REPOSITORY
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-KEY" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-key" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-key \- Manage a keyfile or repokey of a repository
.SH SYNOPSIS
.nf
@ -41,7 +42,6 @@ borg [common options] key migrate\-to\-repokey ...
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-key\-export(1)\fP, \fIborg\-key\-import(1)\fP, \fIborg\-key\-change\-passphrase(1)\fP, \fIborg\-key\-migrate\-to\-repokey(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-LIST" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-list" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-list \- List archive or repository contents
.SH SYNOPSIS
.sp
@ -150,8 +151,7 @@ $ borg list /path/to/repo/::archiveA \-\-pattern \(aq+ re:.ext$\(aq \-\-pattern
.SH NOTES
.SS The FORMAT specifier syntax
.sp
The \fB\-\-format\fP option uses Python\(aqs format string syntax <https://docs.python.org/3.10/library/string.html#formatstrings>
\&.
The \fB\-\-format\fP option uses Python\(aqs format string syntax \%<https://\:docs\:.python\:.org/\:3\:.10/\:library/\:string\:.html#\:formatstrings>\&.
.sp
Examples:
.INDENT 0.0
@ -315,7 +315,6 @@ health: either \(dqhealthy\(dq (file ok) or \(dqbroken\(dq (if file has all\-zer
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-info(1)\fP, \fIborg\-diff(1)\fP, \fIborg\-prune(1)\fP, \fIborg\-patterns(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-MOUNT" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-mount" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-mount \- Mount archive or an entire repository as a FUSE filesystem
.SH SYNOPSIS
.sp
@ -45,6 +46,11 @@ When mounting a repository, the top directories will be named like the
archives and the directory structure below these will be loaded on\-demand from
the repository when entering these directories, so expect some delay.
.sp
Care should be taken, as Borg backs up symlinks as\-is. When an archive
or repository is mounted, it is possible to “jump” outside the mount point
by following a symlink. If this happens, files or directories (or versions of them)
that are not part of the archive or repository may appear to be within the mount point.
.sp
Unless the \fB\-\-foreground\fP option is given the command will run in the
background until the filesystem is \fBunmounted\fP\&.
.sp
@ -190,7 +196,6 @@ Remove the specified number of leading path elements. Paths with fewer elements
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-umount(1)\fP, \fIborg\-extract(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-PATTERNS" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-patterns" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-patterns \- Details regarding patterns
.SH DESCRIPTION
.sp
@ -65,8 +66,7 @@ by a colon \(aq:\(aq (i.e. \fBfm:path/*\fP, \fBsh:path/**\fP).
The default pattern style for \fB\-\-exclude\fP differs from \fB\-\-pattern\fP, see below.
.INDENT 0.0
.TP
.B Fnmatch <https://docs.python.org/3/library/fnmatch.html>
, selector \fIfm:\fP
.B Fnmatch \%<https://\:docs\:.python\:.org/\:3/\:library/\:fnmatch\:.html>, selector \fIfm:\fP
This is the default style for \fB\-\-exclude\fP and \fB\-\-exclude\-from\fP\&.
These patterns use a variant of shell pattern syntax, with \(aq*\(aq matching
any number of characters, \(aq?\(aq matching any single character, \(aq[...]\(aq
@ -97,8 +97,7 @@ anchor patterns to the start (\(aq^\(aq), to the end (\(aq$\(aq) or both. Path
separators (backslash for Windows and \(aq/\(aq on other systems) in paths are
always normalized to a forward slash (\(aq/\(aq) before applying a pattern. The
regular expression syntax is described in the Python documentation for
the re module <https://docs.python.org/3/library/re.html>
\&.
the re module \%<https://\:docs\:.python\:.org/\:3/\:library/\:re\:.html>\&.
.TP
.B Path prefix, selector \fIpp:\fP
This pattern style is useful to match whole sub\-directories. The pattern
@ -121,7 +120,7 @@ Other include/exclude patterns that would normally match will be ignored.
Same logic applies for exclude.
.UNINDENT
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
\fIre:\fP, \fIsh:\fP and \fIfm:\fP patterns are all implemented on top of the Python SRE
@ -233,7 +232,7 @@ This is useful to include paths that are covered in an exclude
pattern and would otherwise not be backed up.
.UNINDENT
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
Via \fB\-\-pattern\fP or \fB\-\-patterns\-from\fP you can define BOTH inclusion and exclusion
@ -272,7 +271,7 @@ R /
.UNINDENT
.UNINDENT
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
It\(aqs possible that a sub\-directory/file is matched while parent directories are not.
@ -359,7 +358,6 @@ R /home/susan
.sp
This allows you to share the same patterns between multiple repositories
without needing to specify them on the command line.
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-PLACEHOLDERS" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-placeholders" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-placeholders \- Details regarding placeholders
.SH DESCRIPTION
.sp
@ -47,13 +48,11 @@ The full name of the machine in reverse domain name notation.
.TP
.B {now}
The current local date and time, by default in ISO\-8601 format.
You can also supply your own format string <https://docs.python.org/3.10/library/datetime.html#strftime-and-strptime-behavior>
, e.g. {now:%Y\-%m\-%d_%H:%M:%S}
You can also supply your own format string \%<https://\:docs\:.python\:.org/\:3\:.10/\:library/\:datetime\:.html#\:strftime-and-strptime-behavior>, e.g. {now:%Y\-%m\-%d_%H:%M:%S}
.TP
.B {utcnow}
The current UTC date and time, by default in ISO\-8601 format.
You can also supply your own format string <https://docs.python.org/3.10/library/datetime.html#strftime-and-strptime-behavior>
, e.g. {utcnow:%Y\-%m\-%d_%H:%M:%S}
You can also supply your own format string \%<https://\:docs\:.python\:.org/\:3\:.10/\:library/\:datetime\:.html#\:strftime-and-strptime-behavior>, e.g. {utcnow:%Y\-%m\-%d_%H:%M:%S}
.TP
.B {user}
The user name (or UID, if no name is available) of the user running borg.
@ -96,7 +95,7 @@ borg prune \-\-glob\-archives \(aq{hostname}\-*\(aq ...
.UNINDENT
.UNINDENT
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
systemd uses a difficult, non\-standard syntax for command lines in unit files (refer to
@ -109,7 +108,6 @@ double all percent signs (\fB{hostname}\-{now:%Y\-%m\-%d_%H:%M:%S}\fP
becomes \fB{hostname}\-{now:%%Y\-%%m\-%%d_%%H:%%M:%%S}\fP).
.UNINDENT
.UNINDENT
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-PRUNE" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-prune" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-prune \- Prune repository archives according to specified rules
.SH SYNOPSIS
.sp
@ -42,8 +43,7 @@ Important: Repository disk space is \fBnot\fP freed until you run \fBborg compac
.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
GFS <https://en.wikipedia.org/wiki/Backup_rotation_scheme#Grandfather-father-son>
GFS \%<https://\:en\:.wikipedia\:.org/\:wiki/\:Backup_rotation_scheme#\:Grandfather-father-son>
(Grandfather\-father\-son) backup rotation scheme.
.sp
Also, prune automatically removes checkpoint archives (incomplete archives left
@ -203,7 +203,6 @@ There is also a visual example of pruning in \fBdocs/misc/prune\-example.txt\fP\
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-compact(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-RECREATE" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-recreate" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-recreate \- Re-create archives
.SH SYNOPSIS
.sp
@ -128,7 +129,7 @@ include/exclude paths matching PATTERN
read include/exclude patterns from PATTERNFILE, one per line
.TP
.B \-\-exclude\-caches
exclude directories that contain a CACHEDIR.TAG file ( <http://www.bford.info/cachedir/spec.html> )
exclude directories that contain a CACHEDIR.TAG file (\%<http://\:www\:.bford\:.info/\:cachedir/\:spec\:.html>)
.TP
.BI \-\-exclude\-if\-present \ NAME
exclude directories that are tagged by containing a filesystem object with the given NAME
@ -199,7 +200,6 @@ Comment: This is a better comment
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-patterns(1)\fP, \fIborg\-placeholders(1)\fP, \fIborg\-compression(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-RENAME" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-rename" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-rename \- Rename an existing archive
.SH SYNOPSIS
.sp
@ -68,7 +69,6 @@ newname Mon, 2016\-02\-15 19:50:19
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-SERVE" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-serve" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-serve \- Start in server mode. This command is usually not used manually.
.SH SYNOPSIS
.sp
@ -49,7 +50,7 @@ restrict repository access to PATH. Can be specified multiple times to allow the
restrict repository access. Only the repository located at PATH (no sub\-directories are considered) is accessible. Can be specified multiple times to allow the client access to several repositories. Unlike \fB\-\-restrict\-to\-path\fP sub\-directories are not accessible; PATH needs to directly point at a repository location. PATH may be an empty directory or the last element of PATH may not exist, in which case the client may initialize a repository there.
.TP
.B \-\-append\-only
only allow appending to repository segment files. Note that this only affects the low level structure of the repository, and running \fIdelete\fP or \fIprune\fP will still be allowed. See \fIappend_only_mode\fP in Additional Notes for more details.
only allow appending to repository segment files. Note that this only affects the low level structure of the repository, and running \fIdelete\fP or \fIprune\fP or reading from the repository will still be allowed. See \fIappend_only_mode\fP in Additional Notes for more details.
.TP
.BI \-\-storage\-quota \ QUOTA
Override storage quota of the repository (e.g. 5G, 1.5T). When a new repository is initialized, sets the storage quota on the new repository as well. Default: no quota.
@ -91,7 +92,7 @@ command=\(dqBORG_XXX=value borg serve [...]\(dq,restrict ssh\-rsa [...]
.UNINDENT
.UNINDENT
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
The examples above use the \fBrestrict\fP directive and assume a POSIX\-compliant
@ -107,8 +108,7 @@ in this case.
.UNINDENT
.UNINDENT
.sp
Details about sshd usage: sshd(8) <https://www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man8/sshd.8>
Details about sshd usage: sshd(8) \%<https://\:www\:.openbsd\:.org/\:cgi-bin/\:man\:.cgi/\:OpenBSD-current/\:man8/\:sshd.8>
.SS SSH Configuration
.sp
\fBborg serve\fP\(aqs pipes (\fBstdin\fP/\fBstdout\fP/\fBstderr\fP) are connected to the \fBsshd\fP process on the server side. In the event that the SSH connection between \fBborg serve\fP and the client is disconnected or stuck abnormally (for example, due to a network outage), it can take a long time for \fBsshd\fP to notice the client is disconnected. In the meantime, \fBsshd\fP continues running, and as a result so does the \fBborg serve\fP process holding the lock on the repository. This can cause subsequent \fBborg\fP operations on the remote repository to fail with the error: \fBFailed to create/acquire the lock\fP\&.
@ -160,8 +160,7 @@ chsh \-s /bin/sh BORGUSER
.UNINDENT
.UNINDENT
.sp
Because the configured shell is used by openssh <https://www.openssh.com/>
Because the configured shell is used by openssh \%<https://\:www\:.openssh\:.com/>
to execute the command configured through the \fBauthorized_keys\fP file
using \fB\(dq$SHELL\(dq \-c \(dq$COMMAND\(dq\fP,
setting a minimal shell implementation reduces the attack surface
@ -170,7 +169,6 @@ used.
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-UMOUNT" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-umount" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-umount \- un-mount the FUSE filesystem
.SH SYNOPSIS
.sp
@ -113,7 +114,7 @@ bin boot etc home lib lib64 lost+found media mnt opt root sbin s
.UNINDENT
.UNINDENT
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
\fBborgfs\fP will be automatically provided if you used a distribution
@ -124,7 +125,6 @@ to manually create a symlink (see \fIpyinstaller\-binary\fP).
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP, \fIborg\-mount(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-UPGRADE" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-upgrade" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-upgrade \- upgrade a repository from a previous version
.SH SYNOPSIS
.sp
@ -86,7 +87,7 @@ If you routinely do this you might not want to enable this upgrade
reverse the upgrade by issuing \fBborg upgrade \-\-disable\-tam REPO\fP\&.
.sp
See
<https://borgbackup.readthedocs.io/en/stable/changes.html#pre\-1\-0\-9\-manifest\-spoofing\-vulnerability>
\%<https://\:borgbackup\:.readthedocs\:.io/\:en/\:stable/\:changes\:.html#\:pre-1-0-9-manifest-spoofing-vulnerability>
for details.
.SS Attic and Borg 0.xx to Borg 1.x
.sp
@ -207,7 +208,6 @@ borg key migrate\-to\-repokey repo
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-VERSION" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-version" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-version \- Display the borg client / borg server version
.SH SYNOPSIS
.sp
@ -75,7 +76,6 @@ repository (used to determine client/server situation)
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG-WITH-LOCK" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg-with-lock" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg-with-lock \- run a user specified command with the repository lock held
.SH SYNOPSIS
.sp
@ -50,7 +51,7 @@ running in the repository), then execute the given command as a subprocess and w
for its termination, release the lock, and return the user command\(aqs return
code as Borg\(aqs return code.
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
If you copy a repository with the lock held, the lock will be present in
@ -77,7 +78,6 @@ command arguments
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,5 +1,6 @@
'\" t
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -28,8 +29,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORG" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borg" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borg \- deduplicating and encrypting backup tool
.SH SYNOPSIS
.sp
@ -170,7 +171,7 @@ $ borg compact /path/to/repo
.UNINDENT
.UNINDENT
.sp
\fBNOTE:\fP
\fBNote:\fP
.INDENT 0.0
.INDENT 3.5
Borg is quiet by default (it works on WARNING log level).
@ -198,7 +199,7 @@ borg create repo::archive \-s \-\-progress path # BAD
.UNINDENT
.UNINDENT
.sp
This is due to a problem in the argparse module: <https://bugs.python.org/issue15112>
This is due to a problem in the argparse module: \%<https://\:bugs\:.python\:.org/\:issue15112>
.SS Repository URLs
.sp
\fBLocal filesystem\fP (or locally mounted network filesystem):
@ -212,7 +213,7 @@ expanded by your shell).
.sp
Note: you may also prepend a \fBfile://\fP to a filesystem path to get URL style.
.sp
\fBRemote repositories\fP accessed via ssh <user@host> :
\fBRemote repositories\fP accessed via ssh \%<user@\:host>:
.sp
\fBssh://user@host:port/path/to/repo\fP \- remote repo, absolute path, port can be given
.sp
@ -309,7 +310,7 @@ to get critical level output.
While you can set misc. log levels, do not expect that every command will
give different output on different log levels \- it\(aqs just a possibility.
.sp
\fBWARNING:\fP
\fBWarning:\fP
.INDENT 0.0
.INDENT 3.5
Options \fB\-\-critical\fP and \fB\-\-error\fP are provided for completeness,
@ -426,11 +427,10 @@ a unique id based on the MAC address of the network interface. Except if that MA
that case it returns a random value, which is not what we want (because it kills automatic stale lock removal).
So, if you have a all\-zero MAC address or other reasons to better externally control the host id, just set this
environment variable to a unique value. If all your FQDNs are unique, you can just use the FQDN. If not,
use <fqdn@uniqueid> \&.
use \%<fqdn@\:uniqueid>\&.
.TP
.B BORG_LOGGING_CONF
When set, use the given filename as INI <https://docs.python.org/3/library/logging.config.html#configuration-file-format>
\-style logging configuration.
When set, use the given filename as INI \%<https://\:docs\:.python\:.org/\:3/\:library/\:logging\:.config\:.html#\:configuration-file-format>\-style logging configuration.
A basic example conf can be found at \fBdocs/misc/logging.conf\fP\&.
.TP
.B BORG_RSH
@ -583,16 +583,14 @@ to modify \fBBORG_BASE_DIR\fP: the other paths for cache, config etc. will adapt
.TP
.B BORG_CACHE_DIR
Defaults to \fB$BORG_BASE_DIR/.cache/borg\fP\&. If \fBBORG_BASE_DIR\fP is not explicitly set while
XDG env var <https://specifications.freedesktop.org/basedir-spec/0.6/ar01s03.html>
\fBXDG_CACHE_HOME\fP is set, then \fB$XDG_CACHE_HOME/borg\fP is being used instead.
XDG env var \%<https://\:specifications\:.freedesktop\:.org/\:basedir-spec/\:0\:.6/\:ar01s03\:.html> \fBXDG_CACHE_HOME\fP is set, then \fB$XDG_CACHE_HOME/borg\fP is being used instead.
This directory contains the local cache and might need a lot
of space for dealing with big repositories. Make sure you\(aqre aware of the associated
security aspects of the cache location: \fIcache_security\fP
.TP
.B BORG_CONFIG_DIR
Defaults to \fB$BORG_BASE_DIR/.config/borg\fP\&. If \fBBORG_BASE_DIR\fP is not explicitly set while
XDG env var <https://specifications.freedesktop.org/basedir-spec/0.6/ar01s03.html>
\fBXDG_CONFIG_HOME\fP is set, then \fB$XDG_CONFIG_HOME/borg\fP is being used instead.
XDG env var \%<https://\:specifications\:.freedesktop\:.org/\:basedir-spec/\:0\:.6/\:ar01s03\:.html> \fBXDG_CONFIG_HOME\fP is set, then \fB$XDG_CONFIG_HOME/borg\fP is being used instead.
This directory contains all borg configuration directories, see the FAQ
for a security advisory about the data in this directory: \fIhome_config_borg\fP
.TP
@ -627,8 +625,7 @@ you need to point to the correct key file matching the repository the command wi
.TP
.B TMPDIR
This is where temporary files are stored (might need a lot of temporary space for some
operations), see tempfile <https://docs.python.org/3/library/tempfile.html#tempfile.gettempdir>
for details.
operations), see tempfile \%<https://\:docs\:.python\:.org/\:3/\:library/\:tempfile\:.html#\:tempfile\:.gettempdir> for details.
.UNINDENT
.TP
.B Building:
@ -694,19 +691,16 @@ config file), but the code tries to work also if hardlinks are not supported.
.SS Units
.sp
To display quantities, Borg takes care of respecting the
usual conventions of scale. Disk sizes are displayed in decimal <https://en.wikipedia.org/wiki/Decimal>
, using powers of ten (so
\fBkB\fP means 1000 bytes). For memory usage, binary prefixes <https://en.wikipedia.org/wiki/Binary_prefix>
are used, and are
indicated using the IEC binary prefixes <https://en.wikipedia.org/wiki/IEC_80000-13#Prefixes_for_binary_multiples>
,
usual conventions of scale. Disk sizes are displayed in decimal \%<https://\:en\:.wikipedia\:.org/\:wiki/\:Decimal>, using powers of ten (so
\fBkB\fP means 1000 bytes). For memory usage, binary prefixes \%<https://\:en\:.wikipedia\:.org/\:wiki/\:Binary_prefix> are used, and are
indicated using the IEC binary prefixes \%<https://\:en\:.wikipedia\:.org/\:wiki/\:IEC_80000-13#\:Prefixes_for_binary_multiples>,
using powers of two (so \fBKiB\fP means 1024 bytes).
.SS Date and Time
.sp
We format date and time conforming to ISO\-8601, that is: YYYY\-MM\-DD and
HH:MM:SS (24h clock).
.sp
For more information about that, see: <https://xkcd.com/1179/>
For more information about that, see: \%<https://\:xkcd\:.com/\:1179/>
.sp
Unless otherwise noted, we display local date and time.
Internally, we store and process date and time as UTC.
@ -753,7 +747,7 @@ borg check: the repository check computes the checksums of all chunks
borg delete repo: low CPU usage
.TP
.B CPU (only for client/server operation):
When using borg in a client/server way with a <ssh:\-type> repo, the ssh
When using borg in a client/server way with a \%<ssh:-type> repo, the ssh
processes used for the transport layer will need some CPU on the client and
on the server due to the crypto they are doing \- esp. if you are pumping
big amounts of data.
@ -974,19 +968,18 @@ The BSDs define additional flags.
\fIborg\-compression(1)\fP, \fIborg\-patterns(1)\fP, \fIborg\-placeholders(1)\fP
.INDENT 0.0
.IP \(bu 2
Main web site <https://www.borgbackup.org/>
Main web site \%<https://\:www\:.borgbackup\:.org/>
.IP \(bu 2
Releases <https://github.com/borgbackup/borg/releases>
Releases \%<https://\:github\:.com/\:borgbackup/\:borg/\:releases>
.IP \(bu 2
Changelog <https://github.com/borgbackup/borg/blob/master/docs/changes.rst>
Changelog \%<https://\:github\:.com/\:borgbackup/\:borg/\:blob/\:master/\:docs/\:changes\:.rst>
.IP \(bu 2
GitHub <https://github.com/borgbackup/borg>
GitHub \%<https://\:github\:.com/\:borgbackup/\:borg>
.IP \(bu 2
Security contact <https://borgbackup.readthedocs.io/en/latest/support.html#security\-contact>
Security contact \%<https://\:borgbackup\:.readthedocs\:.io/\:en/\:latest/\:support\:.html#\:security-contact>
.UNINDENT
.SH AUTHOR
.SH Author
The Borg Collective
orphan:
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -1,4 +1,5 @@
.\" Man page generated from reStructuredText.
.\" Man page generated from reStructuredText
.\" by the Docutils 0.22.4 manpage writer.
.
.
.nr rst2man-indent-level 0
@ -27,8 +28,8 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.TH "BORGFS" "1" "2025-12-01" "" "borg backup tool"
.SH NAME
.TH "borgfs" "1" "2026-03-18" "" "borg backup tool"
.SH Name
borgfs \- Mount archive or an entire repository as a FUSE filesystem
.SH SYNOPSIS
.sp
@ -45,6 +46,11 @@ When mounting a repository, the top directories will be named like the
archives and the directory structure below these will be loaded on\-demand from
the repository when entering these directories, so expect some delay.
.sp
Care should be taken, as Borg backs up symlinks as\-is. When an archive
or repository is mounted, it is possible to “jump” outside the mount point
by following a symlink. If this happens, files or directories (or versions of them)
that are not part of the archive or repository may appear to be within the mount point.
.sp
Unless the \fB\-\-foreground\fP option is given the command will run in the
background until the filesystem is \fBunmounted\fP\&.
.sp
@ -193,7 +199,6 @@ Remove the specified number of leading path elements. Paths with fewer elements
.SH SEE ALSO
.sp
\fIborg\-common(1)\fP
.SH AUTHOR
.SH Author
The Borg Collective
.\" Generated by docutils manpage writer.
.
.\" End of generated man page.

View file

@ -57,28 +57,34 @@ borg key export
Description
~~~~~~~~~~~
This command backs up the borg key.
If repository encryption is used, the repository is inaccessible
without the key. This command allows one to back up this essential key.
without the borg key (and the passphrase that protects the borg key).
If a repository is not encrypted, but authenticated, the borg key is
still needed to access the repository normally.
For repositories using **keyfile** encryption the key is kept locally
on the system that is capable of doing backups. To guard against loss
or corruption of this key, the key needs to be backed up independently
of the main data backup.
For repositories using **repokey** encryption or **authenticated** mode
the key is kept in the repository. A backup is thus not strictly needed,
but guards against the repository becoming inaccessible if the key is
corrupted or lost.
Note that the backup produced does not include the passphrase itself
(i.e., the exported key stays encrypted). In order to regain access to a
(i.e. the exported key stays encrypted). In order to regain access to a
repository, one needs both the exported key and the original passphrase.
Keep the exported key and the passphrase at safe places.
There are three backup formats. The normal backup format is suitable for
digital storage as a file. The ``--paper`` backup format is optimized
for printing and typing in while importing, with per-line checks to
reduce problems with manual input. The ``--qr-html`` option creates a printable
for printing and typing in while importing, with per line checks to
reduce problems with manual input. The ``--qr-html`` creates a printable
HTML template with a QR code and a copy of the ``--paper``-formatted key.
For repositories using keyfile encryption the key is saved locally
on the system that is capable of doing backups. To guard against loss
of this key, the key needs to be backed up independently of the main
data backup.
For repositories using repokey encryption, the key is saved in the
repository in the config file. A backup is thus not strictly needed,
but it guards against the repository becoming inaccessible if the file
is damaged for some reason.
Examples::
borg key export /path/to/repo > encrypted-key-backup

View file

@ -120,6 +120,11 @@ When mounting a repository, the top directories will be named like the
archives and the directory structure below these will be loaded on-demand from
the repository when entering these directories, so expect some delay.
Care should be taken, as Borg backs up symlinks as-is. When an archive
or repository is mounted, it is possible to “jump” outside the mount point
by following a symlink. If this happens, files or directories (or versions of them)
that are not part of the archive or repository may appear to be within the mount point.
Unless the ``--foreground`` option is given the command will run in the
background until the filesystem is ``unmounted``.

View file

@ -19,7 +19,7 @@ borg serve
+-------------------------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``--restrict-to-repository PATH`` | restrict repository access. Only the repository located at PATH (no sub-directories are considered) is accessible. Can be specified multiple times to allow the client access to several repositories. Unlike ``--restrict-to-path`` sub-directories are not accessible; PATH needs to directly point at a repository location. PATH may be an empty directory or the last element of PATH may not exist, in which case the client may initialize a repository there. |
+-------------------------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``--append-only`` | only allow appending to repository segment files. Note that this only affects the low level structure of the repository, and running `delete` or `prune` will still be allowed. See :ref:`append_only_mode` in Additional Notes for more details. |
| | ``--append-only`` | only allow appending to repository segment files. Note that this only affects the low level structure of the repository, and running `delete` or `prune` or reading from the repository will still be allowed. See :ref:`append_only_mode` in Additional Notes for more details. |
+-------------------------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| | ``--storage-quota QUOTA`` | Override storage quota of the repository (e.g. 5G, 1.5T). When a new repository is initialized, sets the storage quota on the new repository as well. Default: no quota. |
+-------------------------------------------------------+-----------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
@ -43,7 +43,7 @@ borg serve
options
--restrict-to-path PATH restrict repository access to PATH. Can be specified multiple times to allow the client access to several directories. Access to all sub-directories is granted implicitly; PATH doesn't need to directly point to a repository.
--restrict-to-repository PATH restrict repository access. Only the repository located at PATH (no sub-directories are considered) is accessible. Can be specified multiple times to allow the client access to several repositories. Unlike ``--restrict-to-path`` sub-directories are not accessible; PATH needs to directly point at a repository location. PATH may be an empty directory or the last element of PATH may not exist, in which case the client may initialize a repository there.
--append-only only allow appending to repository segment files. Note that this only affects the low level structure of the repository, and running `delete` or `prune` will still be allowed. See :ref:`append_only_mode` in Additional Notes for more details.
--append-only only allow appending to repository segment files. Note that this only affects the low level structure of the repository, and running `delete` or `prune` or reading from the repository will still be allowed. See :ref:`append_only_mode` in Additional Notes for more details.
--storage-quota QUOTA Override storage quota of the repository (e.g. 5G, 1.5T). When a new repository is initialized, sets the storage quota on the new repository as well. Default: no quota.