Add MQTT backup reporting and trigger listener
This commit is contained in:
1 parent
a1ce3b19bc
commit
d73e00db1c
9 files changed
+197
-1
No files matched your search
+13
-1
@@ -16,6 +16,13 @@ WAIT_INTERVAL=3
|
||||
START_RETRIES=1
|
||||
LOCK_FILE="/run/lock/zorruno-docker-backup.lock"
|
||||
ZSTD_EXTRA_OPTS="-T0 -12"
|
||||
MQTT_REPORT_ENABLED=0
|
||||
MQTT_HOST=""
|
||||
MQTT_PORT=1883
|
||||
MQTT_USERNAME=""
|
||||
MQTT_PASSWORD_FILE=""
|
||||
MQTT_STATUS_TOPIC="viewroad-status/dockerbackup/$BACKUP_HOSTNAME"
|
||||
MQTT_COMMAND_TOPIC="viewroad-commands/dockerbackup/$BACKUP_HOSTNAME/run"
|
||||
|
||||
RCLONE_ENABLED=0
|
||||
RCLONE_REMOTE=""
|
||||
@@ -39,7 +46,12 @@ if [[ -n "${SOURCE_DIR:-}" && "$BACKUP_ROOT" == "/dockerbackups" ]]; then
|
||||
fi
|
||||
|
||||
timestamp() { date '+%F %T'; }
|
||||
log() { printf '%s [%s] %s\n' "$(timestamp)" "$1" "$2" >&2; }
|
||||
log() {
|
||||
local line
|
||||
line="$(timestamp) [$1] $2"
|
||||
printf '%s\n' "$line" >&2
|
||||
[[ -n "${BACKUP_RUN_LOG:-}" ]] && printf '%s\n' "$line" >>"$BACKUP_RUN_LOG"
|
||||
}
|
||||
die() { log ERROR "$1"; exit "${2:-1}"; }
|
||||
|
||||
is_true() {
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
mqtt_common_args() {
|
||||
MQTT_ARGS=(-h "$MQTT_HOST" -p "$MQTT_PORT")
|
||||
[[ -n "$MQTT_USERNAME" ]] && MQTT_ARGS+=(-u "$MQTT_USERNAME")
|
||||
if [[ -n "$MQTT_PASSWORD_FILE" ]]; then
|
||||
[[ -r "$MQTT_PASSWORD_FILE" ]] || die "MQTT password file is not readable: $MQTT_PASSWORD_FILE"
|
||||
MQTT_ARGS+=(-P "$(<"$MQTT_PASSWORD_FILE")")
|
||||
fi
|
||||
}
|
||||
|
||||
mqtt_publish() {
|
||||
local topic="$1" payload="$2" retain="${3:-0}"
|
||||
[[ -n "$MQTT_HOST" ]] || die "MQTT_HOST is not configured"
|
||||
require_command mosquitto_pub
|
||||
mqtt_common_args
|
||||
(( retain )) && MQTT_ARGS+=(-r)
|
||||
mosquitto_pub "${MQTT_ARGS[@]}" -t "$topic" -m "$payload"
|
||||
}
|
||||
Reference in new issue
Block a user