#!/usr/bin/env bash ls -lha / ls -lha /tmp exit 0 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 I="${I:1}" INCLUDE_DEV+="${I}.pxar:/${I} " done echo "INCLUDE_DEV set to ${INCLUDE_DEV}" ARGUMENTS="" if [ -n "${NAMESPACE}" ]; then ARGUMENTS+="--ns ${NAMESPACE} " fi if [ -n "${BACKUP_ID}" ]; then ARGUMENTS+="--backup-id ${BACKUP_ID} " fi echo "ARGUMENTS set to ${ARGUMENTS}" # run the backup echo "Running the PBS backup..." /usr/bin/proxmox-backup-client backup ${INCLUDE_DEV} ${ARGUMENTS} # run the clean up echo "Cleaing up backups older than ${DAYS_TO_KEEP} day(s)..." find /backup/* -type f -name '*.tar' -mtime +${DAYS_TO_KEEP} -exec rm -vf {} \;