New module for zabbix settings backup based on zabbix-dump Move the _BORG_CALL and _BORG_PRUNE base calls to functions.check instead of each module (they are all the same) Update Readme file Update default settings and remove KEEP so the original defaults are used
Borg Backup Wrapper Scripts
These scripts are wrappers around the main borg backup scripts.
Modules for plain file backup, mysql and postgresql backup exists.
Recommended setup
git clone this repostory into the target folder:
git clone <repo> borg
And in there create the needed settings files.
Now the core scripts can be updated with a simple
git pull
No settings files will be overwritten
Basic Settings
borg.backup.settings
This file must be configured, without it the backup will not work
The following must be set or checked:
LOG_FOLDER: default /var/log/borg.backup/
TARGET_FOLDER: must be set to a path where the backups can be written
BACKUP_FILE: the folder inside the TARGET_FOLDER that is the target for borg. Must end with .borg
Note: BACKUP_FILE is the base name. For all except file (current) a module suffix will be added:
eg:
foo.name.borg wil be foor.name-mysql.borg for mysql backups.
If FILE_REPOSITORY_COMPATIBLE is set to false in the borg.backup.file.settings then the file borg name will have -file added too. Currently this is not added to stay compatible with older scripts
All module settings files can have the following prefixed with SUB_ to override master settings:
- SUB_BACKUP_FILE
- SUB_COMPRESSION
- SUB_COMPRESSION_LEVEL
- SUB_BACKUP_SET
- SUB_KEEP_LAST
- SUB_KEEP_HOURS
- SUB_KEEP_DAYS
- SUB_KEEP_WEEKS
- SUB_KEEP_MONTHS
- SUB_KEEP_YEARS
- SUB_KEEP_WITHIN
Setup backup via SSH to remote host
For this the following settings are from interest
TARGET_USER="";
TARGET_HOST="";
TARGET_PORT="";
Note that if .ssh/config is used only TARGET_HOST needs to be set. Recommened for handling proxy jumps and key files.
and TARGET_BORG_PATH=""; if the target borg is in a non default path
File backup settings
Config variables
Control files
backup.borg.file.include
backup.borg.file.exclude
backup.borg.file.include must be set
File content rules
PostgreSQL backup settings
This script must be run as the postgres user, normaly postgres.
The postgres user must be added to the backup group for this, so that the basic init file can be created in the borg base folder.
Config variables
| Variable | Default | Description |
|---|---|---|
| DATABASE_FULL_DUMP | if empty, dump per databse, if set dump all in one file, if set to schema dump only schema | |
| DATABASE_USER | overide username to connect to database |
Control files
backup.borg.pgsql.include
backup.borg.pgsql.exclude
backup.borg.pgsql.schema-only
MySQL backup settings
If non root ident authentication run is used, be sure that the mysql user is in the backup group.
Config variables
| Variable | Default | Description |
|---|---|---|
| DATABASE_FULL_DUMP | if empty, dump per databse, if set dump all in one file, if set to schema dump only schema | |
| MYSQL_DB_CONFIG | override file for connection. In modern mariaDB installations it is rcommended to run the script as root or mysql user and use the ident authentication instead. |
Control files
backup.borg.mysql.include
backup.borg.mysql.exclude
backup.borg.mysql.schema-only
gitea backup settings
Note that the backup needs the GIT_USER set that runs gitea. This user is neede to create the temporary dump folder and access for the git files and database.
Config Variables
| Variable | Default | Description |
|---|---|---|
| GIT_USER | git | The user that runs gitea |
| GITEA_TMP | /tmp/gitea/ | Where the temporary dump files from the backup are stored, as user git |
| GITEA_BIN | /usr/local/bin/gitea | Where the gitea binary is located |
| GITEA_CONFIG | /etc/gitea/app.ini | The configuration file for gitea |
Control files
There are no control files for gitea backup
zabbix config backup settings
Config Variables
| Variable | Default | Description |
|---|---|---|
| ZABBIX_DUMP | /usr/local/bin/zabbix-dump | |
| ZABBIX_DATABASE | '' | Must be set as either psql or mysql |
| ZABBIX_CONFIG | '' | if not set uses default location |
| ZABBIX_UNKNOWN_TABLES | '' | if set, changed to -f (force) |
Control files
There are no control files for zabbix settings backup