loading...

A lightweight low-level time machine backup utility for Linux

loouislow profile image Loouis Low Updated on ・2 min read

I created this Equilibrium the low-level backup tool because at my workplace has a terrible IT culture. That backing data is an optional practice. This tool helps me to incrementally backup changes on my working computer at volume-level with time and date stamps. Go visit my Github repository page and give a star if you like it.

Equilibrium is a completely built on top of Rsync, a very straight forward and lightweight, but not sacrificing the backup performance or even hogging the host system. And I also can even configure with the crontab to schedule the backup.

The custom codes are fully utilized all the Rsync API goodness that gives you these amazing features:

  • Each backup volume is determined by date per backup session.
  • Continuously resume backup with a marker system.
  • Auto generates a path to the latest backup volume.
  • Auto excludes residual files and directories.
  • Generate statistics after the finished the backup session.

The volume-level backup files structure that looks like below:

.
├── /2019-08-17-144927/     (e.g. volume 1)
├── /2019-08-17-154805/     (e.g. volume 2)
├── /2019-08-17-155055/     (e.g. volume 3)
├── backup.inprogress       (resume indicator)
├── backup.marker           (resume marker data)
└── latest                  (endpoint to latest backup)
Enter fullscreen mode Exit fullscreen mode

Setup

Let's launch a new Terminal and clone the repository at Github,

$ git clone https://github.com/loouislow81/equilibrium.git
$ cd equilibrium
Enter fullscreen mode Exit fullscreen mode

Install

Run this command to install to use system-wide,

$ sudo ./equilibrium --install
Enter fullscreen mode Exit fullscreen mode

If you prefer a binary version, go download binary.

Configure

After installed, you can run without using the ./ and it is ready to run system-wide. You will need to edit /etc/equilibrium.conf for the first time, change whatever necessary to suit your backup behavior. The source and target directories, transfer bandwidths, etc.

(!!) Value for bandwidth_limit is in kBytes, value 50000 is 50 MBytes/s transfer rate by default.

$ sudo equilibrium --config
Enter fullscreen mode Exit fullscreen mode

The above command will open file /etc/equilibrium.conf with the default text editor in the Terminal that looks like below,

##### configurations for `backup` script

USER="loouis"
BACKUP_SOURCE="/home/${USER}"
BACKUP_MEDIUM="/media/${USER}/EX-VOLUME-A"
BACKUP_DESTINATION="${BACKUP_MEDIUM}/.backup/usr-${USER}"

##### configuration for `equilibrium-core` script

bandwidth_limit=50000
exclusion_list='/etc/equilibrium-exclusion.list'
Enter fullscreen mode Exit fullscreen mode

Exclusion

To exclude files, directories, or extensions from the backup session. It also came with pre-defined settings with several examples,

$ sudo equilibrium --exclusion
Enter fullscreen mode Exit fullscreen mode

First Backup

When you are ready, start the backup session with this command,

$ sudo equilibrium --run
Enter fullscreen mode Exit fullscreen mode

Screenshots

Alt Text

Alt Text

Alt Text

Alt Text


Thank you for reading this article. Please heart or unicorn would encourage me to write more about this kind of article next time.

Discussion

pic
Editor guide