From 8d0ddfee09b36ff28380f8302f512871f33e05af Mon Sep 17 00:00:00 2001 From: Marco Cetica Date: Mon, 13 Mar 2023 17:11:32 +0100 Subject: [PATCH] Added some documentation and 'backup_sources.bk' --- README.md | 128 ++++++++++++++++++++++++++++++++++++++++++++++ backup.sh | 13 ++--- backup_sources.bk | 4 ++ 3 files changed, 139 insertions(+), 6 deletions(-) create mode 100644 README.md create mode 100644 backup_sources.bk diff --git a/README.md b/README.md new file mode 100644 index 0000000..19e62b1 --- /dev/null +++ b/README.md @@ -0,0 +1,128 @@ +# backup.sh +`backup.sh` is a POSIX compliant, modular and lightweight backup utility to save and encrypt your files. +This tool is intended to be used on small scale UNIX environment such as VPS, small servers and +workstations. `backup.sh` uses [rsync](https://linux.die.net/man/1/rsync), [tar](https://linux.die.net/man/1/tar) +and [openssl](https://linux.die.net/man/1/openssl) to copy, compress and encrypt the backup. + +## Installation +`backup.sh` consists in a single source file, to install it you can copy the script wherever you want. +Alternatively, you can install the script, the default sources file and the man file using the following command: +```sh +$> sudo make install +``` +This will copy `backup.sh` into `/usr/local/bin/backup.sh`, `backup_sources.bk` into `/usr/local/etc/backup_sources.bk` and +`backup.sh.1` into `/usr/local/share/man/man1`. + +At this point you still need to install the dependencies: +- `rsync` +- `tar` +- `openssl` + +## Usage +To show the available options, you can run `backup.sh --help`, which will print out the following message: +```text +backup.sh - POSIX compliant, modular and lightweight backup utility. + +Syntax: ./backup.sh [-b|-e|-h] +options: +-b|--backup SOURCES USER PASS Backup folders from SOURCES file. +-e|--extract ARCHIVE PASS Extract ARCHIVE using PASS. +-h|--help Show this helper. +``` + +As you can see, `backup.sh` supports two options: **backup creation** and **archive extraction**, the former requires +root permissions, while the latter does not. Let us see them in details. + +### Backup creation +To specify the directories to backup, `backup.sh` uses an associative array called +defined in a text file(called _sources file_) with the following syntax: + +```text +