kennylajara / RunUp

RunUp is a backup system that can be managed by command line. It is intended to be easy to use, fast and secure.
https://runup.readthedocs.io/
Other
0 stars 0 forks source link
backup backup-cli backup-manager backup-solution backup-tool backups linux-backup linux-time-machine linux-timemachine time-machine timemachine

RunUp

GitHub Python version PyPI

RunUp is a backup solution that implements a new backup strategy: fragmented backups. This solution solves all the drawbacks of traditional strategies.

Fragmented backup

There are three typical backup strategies: Full backups, incremental backups and differential backups:

With the above information in mind, I have come up with fragmented backups, a new backup strategy that only creates a full backup the first time, then all backups will be incremental backups. But the unchanged files are associated with the previously stored files, so during the backup restore, it is possible to "merge the fragments" and make the restore as fast as if it were a full backup.

Key features

Saves disk space

Files are never duplicated in the backup storage, even if they are duplicated in the repository or renamed without changing the content.

Create faster backups

Each backup contains only one copy of new or changed files. This allows us to create backups faster, saving time and memory usage.

Quick restoration of backups

When restoring data, we handle it as a full backup, so we don't have the inconvenience of tools that implement traditional partial backup strategies.

Usage

The installation with PIP will not work as I am still in the process to open source this project. To install it, follow the steps below:

# Clone the repo
git clone https://github.com/kennylajara/RunUp.git
# Get into the folder
cd RunUp
# Create and activate environment
python -m venv venv && source venv/bin/activate
# Install development dependencies
pip install -r requirements-dev.txt
# Compile (we are using Cython)
python setup.py build_ext --inplace
# Install package
pip install --editable .
# Test it has been installed successfully
runup --version 
# See how to use the package
runup --help

Create a runup.yaml file with the configuration of your backups. This is an example to back up all files in the same directory as the configuration file:

version: '1'

project:
  projectname:
    include: 
      - '.'

Initialize RunUp.

runup init

Create a backup

runup backup

Restore the latest backup

runup restore

For details or more advanced options, see the documentation.

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/.

Contribution

Contributions are welcome! See the Contributor's Guide.

Donation

This is a Free Open Source Software. If this project is of value to you, consider making a donation.

Donate me