borg
Deduplicating archiver with compression and authenticated encryption.
A backup tool that saves space by only storing new chunks when files haven't changed, with encryption and easy remote backups over SSH.
BorgBackup (short: Borg) is a backup program focused on efficient storage through deduplication. When you run a backup, Borg splits your files into chunks and checks each chunk against what is already stored in the repository. If a chunk already exists, it is skipped entirely. This means a second backup of largely unchanged files takes very little additional space, and daily incremental backups accumulate slowly even for large data sets.
Backups can be compressed using several algorithms ranging from fast-and-light to slow-and-compact: lz4, zstd, zlib, and lzma. All data can also be encrypted on your machine before it leaves, using 256-bit authenticated encryption, which means your files are protected even if someone gains access to the storage server. An optional obfuscation mode can disguise chunk sizes to make it harder to fingerprint your backup contents from the outside.
Borg works well for remote backups over SSH. If Borg is also installed on the remote server, some processing happens there, which improves performance compared to accessing backup storage over a standard network share. Once a backup is stored, you can mount it as a file system and browse its contents like a normal folder, which makes restoring individual files straightforward without extracting an entire archive.
The tool runs on Linux, macOS, and FreeBSD, with experimental support on Windows via Windows Subsystem for Linux. The repository's README notes that the current master branch is Borg version 2, which is in beta and not recommended for production backups. The stable version is documented at the project's main website.
Where it fits
- Set up encrypted daily backups of a server to a remote SSH host with minimal storage growth over time.
- Back up your laptop and restore a single file without extracting the whole archive.
- Run space-efficient incremental backups of large datasets that barely grow with each daily run.
- Mount a past backup as a regular folder to browse and retrieve specific file versions.