forked from schiwagoa/docker-backup-sftp-uploader
Variablen ausgelagert, weil sauberer
This commit is contained in:
@@ -3,25 +3,32 @@
|
||||
set -Eeuo pipefail
|
||||
|
||||
########################################
|
||||
# Konfiguration
|
||||
# Script- und Konfigurationspfade
|
||||
########################################
|
||||
|
||||
SFTP_HOST="${SFTP_HOST:-sftp.example.com}"
|
||||
SFTP_PORT="${SFTP_PORT:-22}"
|
||||
SFTP_USER="${SFTP_USER:-user}"
|
||||
SFTP_PASS="${SFTP_PASS:-Tpassw0rd}"
|
||||
SFTP_REMOTE_DIR="${SFTP_REMOTE_DIR:-/uploads}"
|
||||
|
||||
MAIL_TO="${MAIL_TO:-}"
|
||||
MAIL_FROM="${MAIL_FROM:-}"
|
||||
|
||||
# Nicht /tmp verwenden: viele Systeme mounten /tmp klein oder als tmpfs.
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
DIR_NAME="$(basename "$SCRIPT_DIR")"
|
||||
BACKUP_DIR="${BACKUP_DIR:-$(dirname "$SCRIPT_DIR")/${DIR_NAME}_backups}"
|
||||
LOG_DIR="${LOG_DIR:-${BACKUP_DIR}/logs}"
|
||||
KEEP_LOCAL_BACKUP="${KEEP_LOCAL_BACKUP:-false}"
|
||||
MIN_FREE_MB="${MIN_FREE_MB:-1024}"
|
||||
CONFIG_FILE="${CONFIG_FILE:-${SCRIPT_DIR}/docker-backup-sftp-uploader.conf}"
|
||||
|
||||
if [[ -f "$CONFIG_FILE" ]]; then
|
||||
# shellcheck source=/dev/null
|
||||
source "$CONFIG_FILE"
|
||||
else
|
||||
echo "FEHLER: Konfigurationsdatei nicht gefunden: $CONFIG_FILE" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
########################################
|
||||
# Optionale Fallbacks
|
||||
########################################
|
||||
|
||||
: "${SFTP_PORT:=22}"
|
||||
: "${MAIL_TO:=}"
|
||||
: "${MAIL_FROM:=}"
|
||||
: "${BACKUP_DIR:=$(dirname "$SCRIPT_DIR")/${DIR_NAME}_backups}"
|
||||
: "${LOG_DIR:=${BACKUP_DIR}/logs}"
|
||||
: "${KEEP_LOCAL_BACKUP:=false}"
|
||||
: "${MIN_FREE_MB:=1024}"
|
||||
|
||||
########################################
|
||||
# Variablen
|
||||
@@ -54,6 +61,7 @@ log() {
|
||||
log "========================================="
|
||||
log "Backup gestartet"
|
||||
log "Projekt: $DIR_NAME"
|
||||
log "Konfiguration: $CONFIG_FILE"
|
||||
log "Backup-Datei: $BACKUP_PATH"
|
||||
log "Log-Datei: $LOGFILE"
|
||||
log "========================================="
|
||||
@@ -71,6 +79,15 @@ require_command() {
|
||||
fi
|
||||
}
|
||||
|
||||
require_config_value() {
|
||||
local variable_name="$1"
|
||||
|
||||
if [[ -z "${!variable_name:-}" ]]; then
|
||||
log "FEHLER: Pflichtwert fehlt in der Konfiguration: $variable_name"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
send_mail() {
|
||||
local subject="$1"
|
||||
local body="$2"
|
||||
@@ -255,6 +272,10 @@ require_command tar
|
||||
require_command gzip
|
||||
require_command sshpass
|
||||
require_command sftp
|
||||
require_config_value SFTP_HOST
|
||||
require_config_value SFTP_USER
|
||||
require_config_value SFTP_PASS
|
||||
require_config_value SFTP_REMOTE_DIR
|
||||
check_backup_dir_location
|
||||
check_free_space
|
||||
|
||||
|
||||
Reference in New Issue
Block a user