diff --git a/Readme.md b/Readme.md index 3b4faba..5739c9b 100644 --- a/Readme.md +++ b/Readme.md @@ -13,9 +13,11 @@ Version 4.0 introduces default borg repository name with `-file` for the `file` *Example:* Old backup name + ```sh BACKUP_FILE="some-backup-data.borg" ``` + Then the file need to be renamed the following way: `mv some-backup-data.borg some-backup-data-file.borg` @@ -42,60 +44,79 @@ No settings files will be overwritten ## Possible command line options ### `-c ` + if this is not given, /usr/local/scripts/borg/ is used ### `-L ` + override config set and default log folder ### `-T ` + create one time stand alone backup prefixed with tag name ### `-D ` + remove a tagged backup set, full name must be given ### `-b ` + override the default borg executable found in path ### `-P` + print list of archives created ### `-V` + verify if repository exists, if not abort ### `-e` + exit after running verify `-V` ### `-I` + init repository (must be run first) ### `-Z` + run `borg compact` over given repository ### `-C` + run `borg check` over given repository #### `-y` + Add `--verify-data` to `borg check`. Only works with `-C` #### `-p ` + Only `borg check` data that has given prefix or glob (with *). Only works with `-C` ### `-i` + print out only info ### `-l` + list files during backup ### `-v` + be verbose ### `-d` + debug output all commands ### `-n` + only do dry run ### `-h` + this help page ## Basic Settings @@ -109,7 +130,6 @@ 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: @@ -118,39 +138,41 @@ eg: 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 below have default values if not set in the main settings file - * COMPRESSION: zstd - * COMPRESSION_LEVEL: 3 - * ENCRYPTION: none - * FORCE_VERIFY: false - * COMPACT_INTERVAL: 1 - * CHECK_INTERVAL: none - * KEEP_LAST: 0 - * KEEP_HOURS: 0 - * KEEP_DAYS: 7 - * KEEP_WEEKS: 4 - * KEEP_MONTHS: 6 - * KEEP_YEARS: 1 + +* COMPRESSION: zstd +* COMPRESSION_LEVEL: 3 +* ENCRYPTION: none +* FORCE_VERIFY: false +* COMPACT_INTERVAL: 1 +* CHECK_INTERVAL: none +* KEEP_LAST: 0 +* KEEP_HOURS: 0 +* KEEP_DAYS: 7 +* KEEP_WEEKS: 4 +* KEEP_MONTHS: 6 +* KEEP_YEARS: 1 All module settings files can have the following prefixed with `SUB_` to override master settings: - * SUB_BACKUP_FILE - * SUB_COMPRESSION - * SUB_COMPRESSION_LEVEL - * SUB_COMPACT_INTERVAL - * SUB_CHECK_INTERVAL - * SUB_BACKUP_SET - * SUB_KEEP_LAST - * SUB_KEEP_HOURS - * SUB_KEEP_DAYS - * SUB_KEEP_WEEKS - * SUB_KEEP_MONTHS - * SUB_KEEP_YEARS - * SUB_KEEP_WITHIN + +* SUB_BACKUP_FILE +* SUB_COMPRESSION +* SUB_COMPRESSION_LEVEL +* SUB_COMPACT_INTERVAL +* SUB_CHECK_INTERVAL +* 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 on `borg.backup.settings` For this the following settings are from interest -``` +```sh TARGET_USER=""; TARGET_HOST=""; TARGET_PORT=""; @@ -180,10 +202,9 @@ to `true` ### Config variables - ### Control files -``` +```sh backup.borg.file.include backup.borg.file.exclude ``` @@ -197,16 +218,16 @@ backup.borg.file.exclude 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 +### PostgreSQL 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 +### PostgreSQL Control files -``` +```sh backup.borg.pgsql.include backup.borg.pgsql.exclude backup.borg.pgsql.schema-only @@ -216,16 +237,16 @@ backup.borg.pgsql.schema-only If non root ident authentication run is used, be sure that the `mysql` user is in the backup group. -### Config variables +### MySQL 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 +### MySQLControl files -``` +```sh backup.borg.mysql.include backup.borg.mysql.exclude backup.borg.mysql.schema-only @@ -236,7 +257,7 @@ backup.borg.mysql.schema-only 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 +### gitea Config Variables Variable | Default | Description | - | - | - | @@ -245,14 +266,13 @@ GITEA_TMP | /tmp/gitea/ | Where the temporary dump files from the backup are sto 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 +### gitea Control files There are no control files for gitea backup ## zabbix config backup settings -### Config Variables +### zabbix Config Variables Variable | Default | Description | - | - | - | @@ -261,19 +281,19 @@ 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 +### zabbix Control files There are no control files for zabbix settings backup - ## File connection Running any of the commands below -- borg.backup.file.sh -- borg.backup.gitea.sh -- borg.backup.mysql.sh -- borg.backup.pgsql.sh -- borg.backup.zabbix.sh + +* borg.backup.file.sh +* borg.backup.gitea.sh +* borg.backup.mysql.sh +* borg.backup.pgsql.sh +* borg.backup.zabbix.sh 1) Run `borg.backup.functions.init.sh` (always) 2) Run `borg.backup.functions.verify.sh` (always)