27 lines
543 B
Bash
27 lines
543 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
on_exit() {
|
|
exit $?
|
|
}
|
|
trap on_exit EXIT
|
|
|
|
archiveName="%s-%s-$(date +%%Y-%%m-%%dT%%H:%%M:%%S)"
|
|
archiveSuffix=".failed"
|
|
|
|
# Run borg init if the repo doesn't exist yet
|
|
if ! borg list > /dev/null; then
|
|
borg init --encryption none
|
|
fi
|
|
(
|
|
borg create \
|
|
--compression auto,zstd \
|
|
"::${archiveName}${archiveSuffix}" \
|
|
'%s'
|
|
)
|
|
borg rename "::${archiveName}${archiveSuffix}" "${archiveName}"
|
|
|
|
borg prune \
|
|
--keep-daily=14 --keep-monthly=3 --keep-weekly=4 \
|
|
--glob-archives '%s-%s*'
|
|
borg compact
|