Incremental snapshot backup utility
Go to file
2018-01-21 14:10:55 +01:00
ixesha Version 1.1 2018-01-21 14:00:46 +01:00
LICENSE Initial commit 2018-01-21 12:15:01 +01:00
README.md Update README.md 2018-01-21 14:10:55 +01:00

Ixesha

🗄 Make incremental snapshots to backup any folder to any location/server.

🐍 Written in python.

Quickstart 💥

git clone https://github.com/CupCakeArmy/ixesha
python3 ixesha/ixesha --install
rm -rf ixesha

ixesha --backup ~/ --output /mnt/backup/home

Whenever you want to do an incremental backup simply rerun the same command:

ixesha --backup ~/ --output /mnt/backup/home
How does it work? 🧐

All the snapshots are timestamped and you can delete all the old ones if you like (yes, really 💪), keeping only the last one. The backups are incremental, so they only save the changes you made and are therefore very space efficient. The latest backup is always the ./current link to the last backup inside of the backup directory.

Setup

Requirements

  • Python3
  • rsync (min. v3.1.1)
macOS
  1. Get Brew: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  2. Run: brew install python3 rsync
debian / ubuntu
  1. apt install -y python3 rsync
windows

Well... I don't know...

Installation 🚂

Optionally you can install/uninstall the script globally. Usefull but not required.

It will be saved to: /usr/local/bin/

Install
python3 ixesha --install
Uninstall
python3 ixesha --uninstall

Usage 👾

Run 🚀

Run with: python3 ixesha or ./ixesha

If installed simply: ixesha

ixesha --backup <my-folder> --output <where-to-save-it>
Example

Backup my home folder for example to some mounted drive

ixesha --backup ~/ --output /mnt/backupdrive/home

Arguments

  • -h --help Show help dialog
  • -b --from --backup The folder to be backed up
  • -o --to --output Location where the snapshots will be saved
  • -i --install Install the script globally
  • -u --uninstall Uninstall the script globally

Cron 🕰

If you want to run it every x... you can create a cronjob

Example:

Run the script every 5 Min (More details on cronjobs)

  1. Edit your cron file with: crontab -e
  2. Add: */5 * * * * ixesha -b /some/folder -o /some/backup/location