move variables around to simplify common usage
This commit is contained in:
parent
f5660b1e46
commit
82df2b38e9
|
@ -14,8 +14,9 @@
|
||||||
#
|
#
|
||||||
# Licence: AGPLv3
|
# Licence: AGPLv3
|
||||||
|
|
||||||
######################################################################
|
VERSION="22.12"
|
||||||
# To configure the script:
|
|
||||||
|
##### CONFIGURATION ###################################################
|
||||||
#
|
#
|
||||||
# 1. Set the following MAIL and SERVERS variables.
|
# 1. Set the following MAIL and SERVERS variables.
|
||||||
# 2. Customize the RSYNC_INCLUDES and RSYNC_EXCLUDES variables.
|
# 2. Customize the RSYNC_INCLUDES and RSYNC_EXCLUDES variables.
|
||||||
|
@ -24,57 +25,25 @@
|
||||||
# Some local tasks are configurable.
|
# Some local tasks are configurable.
|
||||||
# If you enable them, have a look at their implementation.
|
# If you enable them, have a look at their implementation.
|
||||||
#
|
#
|
||||||
|
# Some additional configuration variable can be customized
|
||||||
|
# at the end of the script, before invoking the main() function.
|
||||||
|
#
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
|
|
||||||
##### Configuration ###################################################
|
|
||||||
|
|
||||||
VERSION="22.12"
|
|
||||||
|
|
||||||
# email adress for notifications
|
# email adress for notifications
|
||||||
MAIL=jdoe@example.com
|
MAIL=jdoe@example.com
|
||||||
|
|
||||||
# list of hosts (hostname or IP) and SSH port for Rsync
|
# list of hosts (hostname or IP) and SSH port for Rsync
|
||||||
SERVERS="node0.backup.example.com:2XXX node1.backup.example.com:2XXX"
|
SERVERS="node0.backup.example.com:2XXX node1.backup.example.com:2XXX"
|
||||||
|
|
||||||
# explicit PATH
|
|
||||||
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin
|
|
||||||
|
|
||||||
# Should we fallback on other servers when the first one is unreachable?
|
|
||||||
SERVERS_FALLBACK=${SERVERS_FALLBACK:-1}
|
|
||||||
|
|
||||||
# timeout (in seconds) for SSH connections
|
|
||||||
SSH_CONNECT_TIMEOUT=${SSH_CONNECT_TIMEOUT:-90}
|
|
||||||
|
|
||||||
# We use /home/backup : feel free to use your own dir
|
# We use /home/backup : feel free to use your own dir
|
||||||
LOCAL_BACKUP_DIR="/home/backup"
|
LOCAL_BACKUP_DIR="/home/backup"
|
||||||
|
|
||||||
# You can set "linux" or "bsd" manually or let it choose automatically
|
|
||||||
SYSTEM=$(uname | tr '[:upper:]' '[:lower:]')
|
|
||||||
|
|
||||||
# Store pid in a file named after this program's name
|
|
||||||
PROGNAME=$(basename "$0")
|
|
||||||
PIDFILE="/var/run/${PROGNAME}.pid"
|
|
||||||
|
|
||||||
# Customize the log path if you have multiple scripts and with separate logs
|
|
||||||
LOGFILE="/var/log/evobackup.log"
|
|
||||||
|
|
||||||
# Full Rsync log file, reset each time
|
|
||||||
RSYNC_LOGFILE="/var/log/${PROGNAME}.rsync.log"
|
|
||||||
# Rsync stats only, reset each time
|
|
||||||
RSYNC_STATSFILE="/var/log/${PROGNAME}.rsync-stats.log"
|
|
||||||
|
|
||||||
HOSTNAME=$(hostname)
|
|
||||||
|
|
||||||
DATE_FORMAT="%Y-%m-%d %H:%M:%S"
|
|
||||||
|
|
||||||
# Enable/disable local tasks (default: enabled)
|
# Enable/disable local tasks (default: enabled)
|
||||||
: "${LOCAL_TASKS:=1}"
|
: "${LOCAL_TASKS:=1}"
|
||||||
# Enable/disable sync tasks (default: enabled)
|
# Enable/disable sync tasks (default: enabled)
|
||||||
: "${SYNC_TASKS:=1}"
|
: "${SYNC_TASKS:=1}"
|
||||||
|
|
||||||
CANARY_FILE="/zzz_evobackup_canary"
|
|
||||||
|
|
||||||
# Source paths can be customized
|
# Source paths can be customized
|
||||||
# Empty lines, and lines containing # or ; are ignored
|
# Empty lines, and lines containing # or ; are ignored
|
||||||
RSYNC_INCLUDES="
|
RSYNC_INCLUDES="
|
||||||
|
@ -139,13 +108,19 @@ lxc/*/rootfs/var/tmp
|
||||||
|
|
||||||
##### FUNCTIONS #######################################################
|
##### FUNCTIONS #######################################################
|
||||||
|
|
||||||
|
# Execute all local tasks: database dumps, system state dump…
|
||||||
local_tasks() {
|
local_tasks() {
|
||||||
log "START LOCAL_TASKS"
|
log "START LOCAL_TASKS"
|
||||||
|
|
||||||
# Remove previous error files
|
# Remove previous error files
|
||||||
find "${LOCAL_BACKUP_DIR}/" -type f -name '*.err' -delete
|
find "${LOCAL_BACKUP_DIR}/" -type f -name '*.err' -delete
|
||||||
|
|
||||||
# You can comment or uncomment sections below to customize the backup
|
###################################################################
|
||||||
|
# You can enable/disable local tasks
|
||||||
|
# by (un)commenting calls to "dump_XXX" functions.
|
||||||
|
#
|
||||||
|
# You can also add your own functions and call them from here.
|
||||||
|
###################################################################
|
||||||
|
|
||||||
## OpenLDAP
|
## OpenLDAP
|
||||||
# dump_ldap
|
# dump_ldap
|
||||||
|
@ -198,21 +173,26 @@ local_tasks() {
|
||||||
## Dump file access control lists
|
## Dump file access control lists
|
||||||
# dump_facl
|
# dump_facl
|
||||||
|
|
||||||
# Output error files content, if any
|
###################################################################
|
||||||
error_files=$(find "${LOCAL_BACKUP_DIR}/" -type f -name '*.err')
|
|
||||||
for error_file in ${error_files}; do
|
print_error_files_content
|
||||||
error_file_size=$(stat -c "%s" "${error_file}")
|
|
||||||
# shellcheck disable=SC2086
|
|
||||||
if [ ${error_file_size} -gt 0 ]; then
|
|
||||||
printf "### Content of %s ###\n" "${error_file}" >&2
|
|
||||||
cat "${error_file}" >&2
|
|
||||||
printf "########################################\n" >&2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
log "STOP LOCAL_TASKS"
|
log "STOP LOCAL_TASKS"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Output error files content, if any
|
||||||
|
print_error_files_content() {
|
||||||
|
error_files=$(find "${LOCAL_BACKUP_DIR}/" -type f -name '*.err')
|
||||||
|
for error_file in ${error_files}; do
|
||||||
|
error_file_size=$(stat -c "%s" "${error_file}")
|
||||||
|
|
||||||
|
# shellcheck disable=SC2086
|
||||||
|
if [ ${error_file_size} -gt 0 ]; then
|
||||||
|
printf "### cat %s ###\n" "${error_file}" >&2
|
||||||
|
cat "${error_file}" >&2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
# shellcheck disable=SC2317
|
# shellcheck disable=SC2317
|
||||||
mysql_list_databases() {
|
mysql_list_databases() {
|
||||||
port=${1:-"3306"}
|
port=${1:-"3306"}
|
||||||
|
@ -1008,11 +988,40 @@ set -o pipefail
|
||||||
# Default return-code (0 == succes)
|
# Default return-code (0 == succes)
|
||||||
rc=0
|
rc=0
|
||||||
|
|
||||||
### Possible error codes
|
# Possible error codes
|
||||||
E_NOSRVAVAIL=21 # No server is available
|
E_NOSRVAVAIL=21 # No server is available
|
||||||
E_SYNCFAILED=20 # Faild sync task
|
E_SYNCFAILED=20 # Faild sync task
|
||||||
E_DUMPFAILED=10 # Faild dump task
|
E_DUMPFAILED=10 # Faild dump task
|
||||||
|
|
||||||
|
# explicit PATH
|
||||||
|
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin
|
||||||
|
|
||||||
|
# You can set "linux" or "bsd" manually or let it choose automatically
|
||||||
|
SYSTEM=$(uname | tr '[:upper:]' '[:lower:]')
|
||||||
|
|
||||||
|
# Hostname reported in the mail subject
|
||||||
|
HOSTNAME=$(hostname)
|
||||||
|
|
||||||
|
# Store pid in a file named after this program's name
|
||||||
|
PROGNAME=$(basename "$0")
|
||||||
|
PIDFILE="/var/run/${PROGNAME}.pid"
|
||||||
|
|
||||||
|
# Customize the log path if you want multiple scripts to have separate log files
|
||||||
|
LOGFILE="/var/log/evobackup.log"
|
||||||
|
# Rsync complete log file for the current run
|
||||||
|
RSYNC_LOGFILE="/var/log/${PROGNAME}.rsync.log"
|
||||||
|
# Rsync stats for the current run
|
||||||
|
RSYNC_STATSFILE="/var/log/${PROGNAME}.rsync-stats.log"
|
||||||
|
# Canary file to update before executing tasks
|
||||||
|
CANARY_FILE="/zzz_evobackup_canary"
|
||||||
|
|
||||||
|
DATE_FORMAT="%Y-%m-%d %H:%M:%S"
|
||||||
|
|
||||||
|
# Should we fallback on other servers when the first one is unreachable?
|
||||||
|
SERVERS_FALLBACK=${SERVERS_FALLBACK:-1}
|
||||||
|
# timeout (in seconds) for SSH connections
|
||||||
|
SSH_CONNECT_TIMEOUT=${SSH_CONNECT_TIMEOUT:-90}
|
||||||
|
|
||||||
# execute main function
|
# execute main function
|
||||||
main
|
main
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue