If a file env exists in the folder ./jobs/ it will be sourced by the backup scripts. Here you can set custom environment variables.

A common usage is extending the variable PATH to execute binaries that are not located in any directory.

Example:

This might be helpful on MS Windows. If you put the restic binary “somewhere” eg. c:\portable\restic\restic.exe then you can add the path to the env file:

PATH=/c/portable/restic/:$PATH

Override parameters

In the file jobs/env_defaults are some vars to set some defaults for the command lines during backup. Do not edit this file - it is part of the repository. To customize a value copy it to jobs/env and make your changes there.

#!/bin/bash
# ----------------------------------------------------------------------
#
# DEFAULTS !!! Do not edit this file !!! 
# Overide customizations in file "env" (maybe copy env.dist to env first)
#
# ----------------------------------------------------------------------

# ----------------------------------------------------------------------
# Localdump
# ----------------------------------------------------------------------

# mysql
LD_MYSQL_DUMP_PARAMS="--opt \
            --default-character-set=utf8 \
            --flush-logs \
            --single-transaction \
            --no-autocommit \
            "

# ----------------------------------------------------------------------
# Restic backup
# ----------------------------------------------------------------------

# compression mode (only available for repository format version 2), one of (auto|off|max) (default: $RESTIC_COMPRESSION) (default auto)
# export RESTIC_COMPRESSION=auto

# Concurrency for file reads (default: 2)
# RESTIC_READ_CONCURRENCY=

# Target size for pack files
export RESTIC_PACK_SIZE=128

# injected in command line for restic backup (not a variable of restic)
RESTIC_PARAMS=--no-scan

# ----------------------------------------------------------------------

Localdump :: Mysql

You can override used parameters during backup. The parameters for mysqldump are in env_defaults. If you want to change them then put LD_MYSQL_DUMP_PARAMS=... into env file.

Localdump :: Pgsql

Postgres backup supports backups with a snapshot database using CREATE DATABASE snapshot_<SCHEMA> WITH TEMPLATE <SCHEMA>. The backup script detects if a server is writable or readonly (slave). On a writable system the snapshot creation is activated.

The creation of a snapshot database fails if a user is connected on the origin database. It is posible to disconnect all users but shouldn’t be triggered during production times. You can configure a night time when to allow the disconnect (default: disconnect between 22:00 and 02:00).

You can put these variables into env:

  • LD_PGSQL_SNAPSHOTS=0 - disable snapshot on a writable database server
  • LD_PGSQL_DISCONNECT_BEFORE - time in the morning until to allow disconnect; eg. “03:00”
  • LD_PGSQL_DISCONNECT_AFTER - time in the night when to allow disconnect; eg “23:00”

Transfer :: Restic

There are some environment variables for tuning

  • RESTIC_COMPRESSION
  • RESTIC_READ_CONCURRENCY
  • RESTIC_PACK_SIZE

see https://restic.readthedocs.io/en/latest/047_tuning_backup_parameters.html