a simple wrapper script to create a safe and redundant backup. Using duplicity, rdiff-backup, ssh and GnuPG.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
dan cbae1a5ddd
fist commit
4 years ago
README.md fist commit 4 years ago
poor-man-backup.sh fist commit 4 years ago


A poor man backup


A simple wrapper script to create a safe and redundant backup


Requires: bash, GnuPG, duplicity, rdiff-backup, ssh, figlet

The script attempts 3 differents backup:

  • to a SD card via duplicity, encrypted with gnupg. It prevents ransom-ware.

  • to a remote Pc via duplicity and ssh, encrypted with gnupg. It prevents lost or damage.

  • to a remote Pc with encrypted disk via rdiff-backup. Plain mirror for easy recovering.

      +-------------------------------+   +-------------+
      |             HOME              |   |   SD CARD   |
      |                               |--->  duplicity  |
      |                               |   |  encrypted  |
      +-------------------------------+   +-------------+
      |                        |
      |                        |
      +--v--------------+  +------v-----------+
      |  REMOTE SSH PC1 |  |  REMOTE SSH PC2  |
      |    duplicity    |  |   rdiff-backup   |
      |    encrypted    |  |   plain mirror   |
      +-----------------+  +------------------+

Optional: copies selected config files in $HOME/backups

It is recommended to do a full backup every now and then, therefore the script ask you for a full backup every 6 months, and ask to delete the old full backup every 7 months. Make sure you have enough space for 2 full backups in your destination drive. A full backup takes time, you better run it before going to sleep

Important: please remember to backup your gpg-private key separately because you will need it to access the encrypted backup.

The script verifies that gpg-agent is running and mount the SD card, it is supposed to be well-commented and intentionally is all manual. In case you wants to automatize you need to setup ssh and gpg passwordless and add the script to cron.

my poor's man backup: hope you find this useful
To make it yours you need to customize your paths and your shouts
Good luck and may you never need to recover.

Comments? Kudos? Vaffa? Advices? Thank you!
dan [at] autistici.org