hbackup is a simple, high-performance, cross-platform backup tool written in Rust. It is designed to be fast, efficient, and easy to use, with a focus on performance, reliability, and flexible backup management.
- 🚀 Fast and simple file/directory backup via CLI
- ⚡️ Asynchronous multithreaded backup for higher performance, especially with large or multiple files
- 🖥️ Cross-platform: macOS, Linux, Windows
- 📝 Configuration and task management via TOML in user config directory
- 🔄 Add, edit, delete, list and run backup jobs easily
- 🗜️ Compression support:
gzip,zip,sevenz,zstd,bzip2,xz,lz4, andtarfor files and directories - 🛠️ Config file backup, reset, and rollback
- 🧩 Extensible: easy to add new features
cargo install hbackupbk add ~/my_path1/my_file1.txt ~/back
# add a job with compression
bk add ~/my_path2/my_dir ~/back -c gzip
bk add ~/my_path3/my_dir ~/back -c zip -l best
# add a job with mirroring (delete files in target that are not in source)
bk add ~/my_path4/my_dir ~/back -m mirrorbk list-
Run all jobs:
bk run
-
Run multiple jobs by ID:
bk run -i 1 bk run -i 1,2 # or using long form bk run --id 1,2 -
Run a one-time backup (without saving as a job):
bk run ~/my_path/myfile.txt ~/back
You can also specify compression for a one-time backup:
bk run ~/my_path/mydir ~/back -c gzip bk run ~/my_path/mydir ~/back -c zip -l best
-
Delete multiple jobs by ID:
bk delete 1 bk delete 1,2
-
Delete all jobs:
bk delete -a # or using long form bk delete -all
Update the source and/or target of a job by its ID:
bk edit 1 --source ~/newfile.txt --target ~/newbackup/-
Show configuration file path:
bk config
-
Backup configuration file:
bk config --copy
-
Reset configuration file (auto-backup before reset):
bk config --reset
-
Rollback to the last backed up configuration file:
bk config --rollback
You can specify compression format (gzip, zip, sevenz, zstd, bzip2, lz4 or tar) when adding or running jobs:
# Add a job with gzip compression
bk add ~/file.txt ~/back --compression gzip --level fastest
# or a short command line
bk add ~/file.txt ~/back -c gzip -l fastest
# One-time backup with compression
bk run ~/my_path/mydir ~/back -c gzip- Compression works for both files and directories.
- Output files will have
gz,zip,7z,zst,bzip2,xz,lz4,tarextensions. - If no compression is specified, files are copied as-is.
| Command | Description |
|---|---|
bk add |
Add a new backup job |
bk list |
List all backup jobs |
bk run |
Run all jobs, a job by ID, or a one-time backup |
bk delete |
Delete a job by ID or delete all jobs |
bk edit |
Edit a job's source/target by ID |
bk config |
Show, backup, reset, or rollback config file |
Run bk <command> --help for detailed options.
- macOS/Linux:
~/.config/hbackup/config.toml - Windows:
C:\Users\<User>\AppData\Roaming\hbackup\config.toml
A backup of the config file is automatically created before resetting.
- All errors are reported with clear messages.
- If you run
bkwithout a command, you'll see:
bk requires at least one command to execute. See 'bk --help' for usage.
MIT