Files
hassio-addons/PBS-Client/run.sh

57 lines
1.9 KiB
Bash

#!/usr/bin/env bash
set -e
CONFIG_PATH=/data/options.json
AUTH=$(jq --raw-output '.auth // empty' $CONFIG_PATH)
USERNAME=$(jq --raw-output '.username // empty' $CONFIG_PATH)
PASSWORD=$(jq --raw-output '.password // empty' $CONFIG_PATH)
PBS_HOST=$(jq --raw-output '.pbs_host // empty' $CONFIG_PATH)
PBS_PORT=$(jq --raw-output '.pbs_port // empty' $CONFIG_PATH)
PBS_FINGERPRINT=$(jq --raw-output '.pbs_fingerprint // empty' $CONFIG_PATH)
DATASTORE=$(jq --raw-output '.datastore // empty' $CONFIG_PATH)
NAMESPACE=$(jq --raw-output '.namespace // empty' $CONFIG_PATH)
INCLUDE=$(jq --raw-output '.include // empty' $CONFIG_PATH)
DAYS_TO_KEEP=$(jq --raw-output '.days_to_keep // empty' $CONFIG_PATH)
BACKUP_ID=$(jq --raw-output '.backup_id // empty' $CONFIG_PATH)
echo "PBS_HOST set to ${PBS_HOST}"
echo "PBS_PORT set to ${PBS_PORT}"
echo "PBS_REPOSITORY set to ${PBS_REPOSITORY}"
echo "PBS_FINGERPRINT set to ${PBS_FINGERPRINT}"
echo "DATASTORE set to ${DATASTORE}"
echo "BACKUP_ID set to ${BACKUP_ID}"
echo "NAMESPACE set to ${NAMESPACE}"
echo "USERNAME set to ${USERNAME}"
echo "AUTH set to ${AUTH}"
echo "INCLUDE set to ${INCLUDE}"
echo "DAYS_TO_KEEP set to ${DAYS_TO_KEEP}"
# set environment variables
echo "Setting environment variables"
export PBS_PASSWORD="${PASSWORD}"
export PBS_REPOSITORY="${USERNAME}@${AUTH}@${PBS_HOST}:${PBS_PORT}:${DATASTORE}"
export PBS_FINGERPRINT="${PBS_FINGERPRINT}"
INCLUDE_DEV=""
for I in ${INCLUDE}; do
INCLUDE_DEV+="${I}.pxar:/${I}"
done
echo "INCLUDE_DEV set to ${INCLUDE_DEV}"
/usr/bin/proxmox-backup-client version
exit 0
# run the backup
bashio::log.info "Running the PBS backup..."
if [ -z "${NAMESPACE}" ]; then
/usr/bin/proxmox-backup-client backup ${INCLUDE_DEV}
else
/usr/bin/proxmox-backup-client backup --ns ${NAMESPACE} ${INCLUDE_DEV}
fi
# run the clean up
bashio::log.info "Cleaing up backups older than ${DAYS_TO_KEEP} day(s)..."
find /backup/* -type f -name '*.tar' -mtime +${DAYS_TO_KEEP} -exec rm -vf {} \;