57 lines
1.9 KiB
Bash
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 {} \; |