As the name suggests, this is a simple backup script written in bash.
This script came up as a result of rewriting a few backup scripts that did their job yet shared like 90% of their code. The original scripts were very hasty, so I tried to remade them into something a little more presentable.
At this time this script is capable of dealing with backing up regular files/directories and PostgreSQL databases. It has a separate Docker volume backup option, but it's been mainly made to separate those from configuration files.
This script is meant to be periodically run with cron/systemd timers. It comes with example systemd units/timers made to do just that.
backup.sh: a simple backup script. Usage: backup.sh [flags] Options: -a | --all: run the default set of backups (configs and Docker as of now) -p | --postgres: run the backups on PostgreSQL databases -d | --docker: run the backups on Docker volumes -c | --configs: run the backups on the files specified in /etc/backups.conf --no-cleanup: don't cleanup after the backup has finished
The configuration file is located at
/etc/backups.conf. It has to be a
valid bash script, as it's sourced at the program start.
For the available options see the example config file.
This script is not supposed to send backups to S3/Backblaze B2/etc. It assumes
the tarballs are then copied to some other location with other tools (this may
rsync or whatever you like). The author themselves simply uses