# 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