-
How-to guides
- π₯ Install borgmatic
- π Set up backups
- ποΈ Make per-application backups
- π Provide your passwords
- βοΈ Make backups redundant
- π Deal with very large backups
- π Inspect your backups
- π¨ Monitor your backups
- π€ Extract a backup
- ποΈ Backup your databases
- πΈ Snapshot your filesystems
- π§Ή Add preparation and cleanup steps
- πΎ Backup to a removable drive/server
- π§ Run arbitrary Borg commands
- π₯ Customize warnings/errors
- π¦ Upgrade borgmatic/Borg
- ποΈ Develop on borgmatic
-
Reference guides
- βοΈ Configuration
- π» Command-line
- π Source code
New in version 1.9.0 borgmatic uses a runtime directory for temporary file storage, such as for streaming database dumps to Borg, creating filesystem snapshots, saving bootstrap metadata, and so on. To determine the path for this runtime directory, borgmatic probes the following values:
- The
user_runtime_directoryborgmatic configuration option. - The
XDG_RUNTIME_DIRenvironment variable, usually/run/user/$UID(where$UIDis the current user's ID), automatically set by PAM on Linux for a user with a session. - New in version 1.9.2The
RUNTIME_DIRECTORYenvironment variable, set by systemd ifRuntimeDirectory=borgmaticis added to borgmatic's systemd service file. - New in version 1.9.1The
TMPDIRenvironment variable, set on macOS for a user with a session, among other operating systems. - New in version 1.9.1The
TEMPenvironment variable, set on various systems. - New in version 1.9.2
Hard-coded
/tmp. Prior to version 1.9.2This was instead hard-coded to/run/user/$UID.
You can see the runtime directory path that borgmatic selects by running with
--verbosity 2 and looking for Using runtime directory in the output.
Regardless of the runtime directory selected, borgmatic stores its files
within a borgmatic subdirectory of the runtime directory. Additionally, in
the case of TMPDIR, TEMP, and the hard-coded /tmp, borgmatic creates a
randomly named subdirectory in an effort to reduce path collisions in shared
system temporary directories.
Prior to version 1.9.0
borgmatic created temporary streaming database dumps within the ~/.borgmatic
directory by default. At that time, the path was configurable by the
borgmatic_source_directory configuration option (now deprecated).
systemd-tmpfiles
If borgmatic's runtime directory is in /tmp, be aware that some systems may
automatically delete /tmp files on a periodic basis, e.g. via
systemd-tmpfiles.
One sign that this is happening is borgmatic erroring during cleanup with "No such file or directory" on the runtime directory path, indicating that borgmatic's runtime directory is getting deleted out from under it.
You can work around this by either excluding borgmatic's runtime directory from
automatic systemd-tmpfiles managementβor you can change borgmatic's runtime
directory to not be in /tmp as described above.
Here's what a systemd-tmpfiles exclude for borgmatic might look like, for
instance in an /etc/tmpfiles.d/borgmatic.conf file:
x /tmp/borgmatic-*
That tells systemd-tmpfiles to ignore borgmatic's runtime directory when
automatically deleting paths in /tmp.
Improve this documentation
Have an idea on how to make this documentation even better? Use our issue tracker to send your feedback!