Files
BorgBackupWrapper/Readme.md
Clemens Schwaighofer a0d06573ec Zabbix settings backup, Readme update, base calls location move
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
2021-12-14 10:24:42 +09:00

153 lines
4.1 KiB
Markdown

# 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