From cfe68b9c2da2ff48171e2bbdb8988b92f7f41ee1 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 19 May 2018 08:17:47 -0300 Subject: Adds borg action and misc changes --- templates/duplicity.sh.erb | 58 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 templates/duplicity.sh.erb (limited to 'templates/duplicity.sh.erb') diff --git a/templates/duplicity.sh.erb b/templates/duplicity.sh.erb new file mode 100644 index 0000000..846f9de --- /dev/null +++ b/templates/duplicity.sh.erb @@ -0,0 +1,58 @@ +#!/bin/bash +# +# This configuration file was auto-generated by the Puppet configuration +# management system. Any changes you make to this file will be overwritten +# the next time Puppet runs. Please make configuration changes to this +# service in Puppet. +# +# TODO: custom log file + +BACKUP_FOLDER="<%= @directory %>" +FULL_IF_OLDER_THAN="<%= @full_if_older_than %>" +REMOVE_OLDER_THAN="<%= @remove_older_than %>" +REMOVE_ALL_BUT_N_FULL="<%= @remove_all_but_n_full %>" +ENCRYPT_KEY="<%= @encryptkey %>" +SIGN_KEY="<%= @encryptkey %>" +<% @exclude_unencrypted.each do |del| -%> +EXCLUDE="$EXCLUDE --exclude <%= del %>" +<% end -%> +<% @include_unencrypted.each do |add| -%> +INCLUDE="$INCLUDE --include <%= add %>" +<% end -%> + +# some systems have a limited /tmp folder +TMP="/var/tmp" +mkdir -p $TMP + +export PASSPHRASE='<%= @password %>' +mkdir -p $BACKUP_FOLDER + +# adds support for checking the existing backup +if [ "$1" == "--check" ]; then + duplicity collection-status file:////$BACKUP_FOLDER +else + # cleanup any previous broken backups + duplicity cleanup file:////$BACKUP_FOLDER --force + + # remove dangling lockfiles + if [ -z "`pidof duplicity`" ]; then + rm /root/.cache/duplicity/*/lockfile.lock + fi + + # it's important to let $EXCLUDE come before $INCLUDE to + # have greater precedence; see duplicity(1) for more info + duplicity -v6 --full-if-older-than $FULL_IF_OLDER_THAN \ + --tempdir $TMP --encrypt-key $ENCRYPT_KEY --sign-key $SIGN_KEY \ + --exclude $TMP $EXCLUDE $INCLUDE --exclude '**' / file:////$BACKUP_FOLDER + + if [ "$?" != "0" ]; then + fatal "Duplicity backup failed." + fi + + duplicity remove-older-than $REMOVE_OLDER_THAN file:////$BACKUP_FOLDER --force || exit 1 + duplicity remove-all-but-n-full $REMOVE_ALL_BUT_N_FULL file:////$BACKUP_FOLDER --force || exit 1 + + if [ "$?" != "0" ]; then + fatal "Removal of old backups failed." + fi +fi -- cgit v1.2.3