Skip to content

Aggrathon/simple_backup

Repository files navigation

simple_backup

Tests Builds

A minimal application for doing backups.

Features

  • No propriety formats, the backups are saved in a normal compressed archives.
  • Modern, state-of-the-art compression using zstd.
  • Optional multithreading for increased performance.
  • Incremental backups (using the "last changed" metadata from the files).
  • Selective restores (only deleted files, only selected files, or all files).
  • Merge old backups to save sapace.
  • Command line interface (declare includes, excludes, and regex-filters).
  • Configurations can be saved for easy reuse (e.g. for incremental backups).
  • Graphical user interface.

Binaries

Precompiled binaries (for Linux, Windows, and Mac) can be found on the releases page (no installation required).

Usage

GUI

Just run the program and select what to do (assuming it has been compiled without disabling the GUI).

screenshot

Command line

For doing backups from command line run simple_backup direct [PARAMS]. To create a config file run simple_backup config <CONFIG> [PARAMS] and then simple_backup backup <CONFIG> to do a backup based on the config. Finally, to restore from a backup run simple_backup restore <PATH> [PARAMS]. More detailed instructions is available with the help parameter: simple_backup --help (also works for sub commands such as simple_backup restore --help).

Example:

cd /tmp
mkdir dir
touch test1.txt dir/test2.txt dir/test3.txt

simple_backup config config.yml --include test.txt dir --exclude dir/test2.txt --output .
simple_backup backup config.yml

rm test1.txt dir/test2.txt dir/test3.txt dir -r

simple_backup restore config.yml

[ -f test1.txt ] && echo "test1.txt was restored."
[ ! -f dir/test2.txt ] && echo "test2.txt was excluded."
[ -f dir/test3.txt ] && echo "test3.txt was restored."

rm backup_*.tar.zst config.yml test1.txt dir/test3.txt dir -r

Compilation

Download this repo and run: cargo build --release. To compile a version without the GUI add: --no-default-features.