59 lines
No EOL
2.3 KiB
Bash
59 lines
No EOL
2.3 KiB
Bash
#! /bin/bash
|
|
|
|
function init-file-repo() {
|
|
if [ -z ${CERTIFICATE_FILE} ];
|
|
then
|
|
restic -r ${RESTIC_REPOSITORY}/files -v init
|
|
else
|
|
restic -r ${RESTIC_REPOSITORY}/files -v init --cacert ${CERTIFICATE_FILE}
|
|
fi
|
|
}
|
|
|
|
# First arg is the directory, second is optional for the path to a certificate file
|
|
function backup-directory() {
|
|
local directory="$1"; shift
|
|
|
|
if [ -z ${CERTIFICATE_FILE} ];
|
|
then
|
|
restic -v -r ${RESTIC_REPOSITORY}/files unlock --cleanup-cache
|
|
cd ${directory} && restic -v -r ${RESTIC_REPOSITORY}/files backup .
|
|
restic -v -r ${RESTIC_REPOSITORY}/files forget --keep-last 1 --keep-within ${RESTIC_DAYS_TO_KEEP}d --prune
|
|
else
|
|
restic -v -r ${RESTIC_REPOSITORY}/files unlock --cleanup-cache --cacert ${CERTIFICATE_FILE}
|
|
cd ${directory} && restic -v -r ${RESTIC_REPOSITORY}/files backup . --cacert ${CERTIFICATE_FILE}
|
|
restic -v -r ${RESTIC_REPOSITORY}/files forget --keep-last 1 --keep-within ${RESTIC_DAYS_TO_KEEP}d --prune --cacert ${CERTIFICATE_FILE}
|
|
fi
|
|
}
|
|
|
|
# First arg is the directory, the remaining args are the sub-directories (relative to the first directory) to backup.
|
|
function backup-fs-from-directory() {
|
|
local directory="$1"; shift
|
|
|
|
if [ -z ${CERTIFICATE_FILE} ];
|
|
then
|
|
restic -v -r ${RESTIC_REPOSITORY}/files unlock --cleanup-cache
|
|
cd ${directory} && restic -v -r ${RESTIC_REPOSITORY}/files backup $@
|
|
restic -v -r ${RESTIC_REPOSITORY}/files forget --keep-last 1 --keep-within ${RESTIC_DAYS_TO_KEEP}d --prune
|
|
else
|
|
restic -v -r ${RESTIC_REPOSITORY}/files unlock --cleanup-cache --cacert ${CERTIFICATE_FILE}
|
|
cd ${directory} && restic -v -r ${RESTIC_REPOSITORY}/files backup $@ --cacert ${CERTIFICATE_FILE}
|
|
restic -v -r ${RESTIC_REPOSITORY}/files forget --keep-last 1 --keep-within ${RESTIC_DAYS_TO_KEEP}d --prune --cacert ${CERTIFICATE_FILE}
|
|
fi
|
|
|
|
}
|
|
|
|
function restore-directory() {
|
|
local directory="$1"; shift
|
|
|
|
if [ -z ${CERTIFICATE_FILE} ];
|
|
then
|
|
restic -v -r ${RESTIC_REPOSITORY}/files unlock --cleanup-cache
|
|
rm -rf ${directory}*
|
|
restic -v -r $RESTIC_REPOSITORY/files restore latest --target ${directory}
|
|
else
|
|
restic -v -r ${RESTIC_REPOSITORY}/files unlock --cleanup-cache --cacert ${CERTIFICATE_FILE}
|
|
rm -rf ${directory}*
|
|
restic -v -r $RESTIC_REPOSITORY/files restore latest --target ${directory} --cacert ${CERTIFICATE_FILE}
|
|
fi
|
|
|
|
} |