diff --git a/Dockerfile b/Dockerfile index 015b7cf..6252624 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,6 +18,7 @@ VOLUME ["/sshkeys/host"] COPY motd.txt /etc/motd COPY entrypoint-script/entrypoint.sh / COPY entrypoint-script/variables.sh / +COPY scripts/borgbackup.sh /usr/local/bin/ COPY bash-config/.bash_profile /root/ COPY bash-config/.bashrc /root/ diff --git a/scripts/borgbackup.sh b/scripts/borgbackup.sh new file mode 100644 index 0000000..dbcce48 --- /dev/null +++ b/scripts/borgbackup.sh @@ -0,0 +1,49 @@ +############################################################################################################################## +# Borg Backup Funktionen +############################################################################################################################## +function create_borg_backup { + # $1 = ARCHIVE NAME + # $2 = FOLDER TO BACKUP + local ARCHIVE_NAME="$1" + local FOLDER_TO_BACKUP="$2" + + if [ -z "$ARCHIVE_NAME" ]; then + echo "No archive name provided" + return 1 + fi + if [ -z "$FOLDER_TO_BACKUP" ]; then + echo "No folder to backup provided" + return 1 + fi + if [ -z "$BORG_CREATE_PARAMS" ]; then + echo "No borg create params provided" + return 1 + fi + + echo "Creating Borg Backup from $FOLDER_TO_BACKUP into the Archive: $ARCHIVE_NAME" + borg create "${BORG_CREATE_PARAMS[@]}" "$BORG_REPO"::"$ARCHIVE_NAME-{now:%d.%m.%Y_%H:%M}" "$FOLDER_TO_BACKUP" + backup_exit=$? +} + +function purge_borg_backup { + # $1 = ARCHIVE NAME + local ARCHIVE_NAME="$1" + + if [ -z "$ARCHIVE_NAME" ]; then + echo "No archive name provided" + return 1 + fi + if [ -z "$BORG_PRUNE_PARAMS" ]; then + echo "No borg purge params provided" + return 1 + fi + + echo "Purging Borg Backup Archive: $ARCHIVE_NAME" + borg prune -a "$ARCHIVE_NAME-*" "${BORG_PRUNE_PARAMS[@]}" + prune_exit=$? +} + +function compact_borg_backup { + borg compact --progress :: + compact_exit=$? +}