Skip to content

Aggrathon/simple_backup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

simple_backup

A minimal application for doing backups.

Features

  • No propriety format, the backups are saved in a normal compressed archive.
  • Modern, state-of-the-art compression using zstd.
  • Optional multithreading for increased performance.
  • Incremental backups (using 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.

Usage

GUI

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

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

Binaries

Precompiled binaries can be found on the releases page.

Compilation

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