A wrapper around a common rsync backup solution that makes it less dumberer. WIP, all feedback welcome.
Shell Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src
.gitignore
LICENSE
README.md
screenshot.png

README.md

simplebackup

A stupidly barebones backup script for UNIX systems (or just a marginally smart wrapper around rsync).

How do I use it?

  1. Create /etc/simplebackup and give the user running simplebackup.sh read and write permissions on it.
  2. Copy sbckup.conf.example into /etc/simplebackup as sbckup.conf
  3. Update the backup_drive variable in the conf file to match the mount point of your backup drive.
  4. Optionally update the --exclude flag in the rsync invocation in the simplebackup.sh script to your needs.
  5. Create the /var/log/simplebackup/ directory and give the user running simplebackup.sh write permissions on it.
  6. Place the simplebackup.sh script somewhere it won't get accidentally deleted.
  7. Use (sudo)? crontab -e to run this script periodically.

Boom, you're done, logging and all!

Protip

Simplebackup creates a /etc/simplebackup/statusmessage file which gets chowned to the user_to_notify from the sbckup.json conffile. This can be used (by putting a call to cat in your runtime config) to notify you, using colorized messages) of the status of a backup: these can be any of:

  • In progress
  • Failed or interrupted
  • Successfully completed

This message will also alert you if it's been more than 48 hours since the last successful backup (WIP, it's implemented but more than a bit broken for now).

In action

Showing off the different kinds of notification

Credits

This script is based off the rsync invocation posted to ArchWiki here. The wrapper around this central part of this script was originally authored by Jules Mazur and is released under the GNU General Public License, version 3 (GPLv3). Details about this license may be found in the LICENSE file in the root of this repository.

TODO

  • Backup lapse reminders (GNOME/KDE integration)
  • Verification that the backup medium has enough free space to actually store a new backup
  • Support for archived incremental backups (sort of like what Time Machine does, where you can pick and choose from older backups using stored diffs or something of the sort)
    • Support for restoring from those backups
  • Support for automated restores on Arch, including updating /etc/fstab, if that's even possible (it's once again past 3 AM and for some reason I'm still working on this, so I can't really say off the top of my head)