Files
Cantibra a6db7726e6
All checks were successful
Borgbackup Schedule / Borgbackup Schedule [arm64] (push) Successful in 16s
Borgbackup Schedule / Borgbackup Schedule [amd64] (push) Successful in 12s
Inital Commit
2025-10-26 21:11:04 +01:00

88 lines
2.6 KiB
Bash

#!/usr/bin/bash
###
#
# Options Section
#
###
set -e
set -o pipefail
###
#
# Variable Section
#
###
export BORG_BASE_DIR='/nonexistent'
export BORG_CACHE_DIR='/var/cache/borgbackup'
export BORG_COMPRESSION
export BORG_CONFIG_EXCLUDE='/etc/borgbackup/exclude'
export BORG_CONFIG_FILE='/etc/borgbackup/config'
export BORG_CONFIG_DIR='/etc/borgbackup'
export BORG_FILES_CACHE_TTL
export BORG_KEYS_DIR='/etc/borgbackup/keys'
export BORG_LOG_CREATE='/var/log/borgbackup/create.log'
export BORG_LOG_PRUNE='/var/log/borgbackup/prune.log'
export BORG_PASSCOMMAND='/usr/bin/cat /etc/borgbackup/password'
export BORG_POSTEXEC_DIR='/etc/borgbackup/postexec'
export BORG_PREEXEC_DIR='/etc/borgbackup/preexec'
export BORG_PRUNE_WITHIN
export BORG_PRUNE_DAILY
export BORG_PRUNE_MONTHLY
export BORG_PRUNE_WEEKLY
export BORG_REPO
export BORG_SECURITY_DIR='/var/lib/borgbackup'
export BORG_SHOW_SYSINFO
export BORG_WORKAROUNDS
export TMPDIR='/tmp'
source '/etc/borgbackup/config'
###
#
# Runtime Environment
#
###
if [[ -n "${INVOCATION_ID}" ]]; then
if ! source '/usr/lib/borgbackup/check_conditions'; then
exit 1
fi
fi
/usr/bin/run-parts --new-session "${BORG_PREEXEC_DIR}"
BORG_REPO_ID=$(/usr/bin/borg list | /usr/bin/tail --lines='1' | /usr/bin/mawk '{print $1}')
BORG_REPO_ID=$(( "${BORG_REPO_ID}" + 1 ))
/usr/bin/test ! -f "${BORG_LOG_CREATE}" && \
/usr/bin/touch "${BORG_LOG_CREATE}"
/usr/bin/test ! -f "${BORG_LOG_PRUNE}" && \
/usr/bin/touch "${BORG_LOG_PRUNE}"
DATE=$(/usr/bin/date)
if [ ! -s "${BORG_LOG_CREATE}" ]; then
/usr/bin/echo -n -e "Date: ${DATE}\nRepository ID: ${BORG_REPO_ID}\n\n" >> "${BORG_LOG_CREATE}"
else
/usr/bin/echo -n -e "\nDate: ${DATE}\nRepository ID: ${BORG_REPO_ID}\n\n" >> "${BORG_LOG_CREATE}"
fi
/usr/bin/borg create --debug \
--compression "${BORG_COMPRESSION}" \
--exclude-from "${BORG_CONFIG_EXCLUDE}" \
::"${BORG_REPO_ID}" \
'/' \
&>> "${BORG_LOG_CREATE}"
DATE=$(/usr/bin/date)
if [ ! -s "${BORG_LOG_PRUNE}" ]; then
/usr/bin/echo -n -e "Date: ${DATE}\nRepository ID: ${BORG_REPO_ID}\n\n" >> "${BORG_LOG_PRUNE}"
else
/usr/bin/echo -n -e "\nDate: ${DATE}\nRepository ID: ${BORG_REPO_ID}\n\n" >> "${BORG_LOG_PRUNE}"
fi
/usr/bin/borg prune --debug \
--keep-within="${BORG_PRUNE_WITHIN}" \
--keep-daily="${BORG_PRUNE_DAILY}" \
--keep-weekly="${BORG_PRUNE_WEEKLY}" \
--keep-monthly="${BORG_PRUNE_MONTHLY}" \
--save-space \
&>> "${BORG_LOG_PRUNE}"
/usr/bin/run-parts --new-session "${BORG_POSTEXEC_DIR}"